javasciptメモ帳

javascriptに関するメモです。

129 views

Denoとは何か?

DenoはJavaScript/TypeScriptランタイムの1つで、Denoエコシステムを利用して構築されたサービスや機能のことを指します。Denoは、Node.jsを開発したRyan Dahl氏が手がけた次世代のJavaScript/TypeScriptランタイムで、Node.jsの課題を解決するために作られました。

Denoの特徴としては以下のような点があります:

  1. セキュリティがデフォルトで高い - Denoは、デフォルトでファイルシステムやネットワークアクセスを禁止しています。必要な場合にのみ、明示的に権限を付与する必要があります。
  2. TypeScriptのサポート - TypeScriptがネイティブでサポートされており、トランスパイルの手間なくTypeScriptコードを実行できます。
  3. シンプルなモジュール管理 - モジュールの管理がURLベースになっており、package.jsonnode_modulesのような仕組みがありません。

Denoを使う場合、Node.jsと同様にサーバーレス環境でスケーラブルなコードを動かせるため、TypeScriptでの開発をシンプルにしたい場合や、セキュリティをより強化したい場合などに適しています。

Denoの使い方を簡単に説明します。DenoはJavaScript/TypeScriptランタイムなので、Node.jsと似た部分もありますが、いくつかの特徴的な違いもあります。以下にDenoのインストール方法から基本的な使い方まで説明します。

1. Denoのインストール

まず、Denoをインストールする必要があります。以下のコマンドを実行してください。

  • macOS / Linux:

    curl -fsSL https://deno.land/install.sh | sh
    
  • Windows (PowerShell):

    iwr https://deno.land/install.ps1 -useb | iex
    
  • Homebrewを使用してインストール (macOS/Linux):

    brew install deno
    

インストールが完了したら、以下のコマンドでバージョンを確認できます。

deno --version

2. 基本的なスクリプトの実行

DenoはJavaScriptやTypeScriptのスクリプトを直接実行できます。ファイル名が hello.ts だとすると、次のように実行できます。

例: hello.ts

console.log("Hello, Deno!");

実行コマンド

deno run hello.ts

3. ファイルシステムやネットワークアクセス

Denoはセキュリティがデフォルトで有効になっており、ファイルシステムやネットワークにアクセスするには明示的に許可を与える必要があります。

ファイルの読み込み (例: readFile.ts)

const data = await Deno.readTextFile("example.txt");
console.log(data);

実行コマンド

deno run --allow-read readFile.ts

--allow-read フラグでファイルの読み取り許可を与えています。同様に、書き込みやネットワークアクセスなども個別にフラグで許可する必要があります。

  • --allow-net : ネットワークアクセスを許可
  • --allow-write : ファイルの書き込みを許可
  • --allow-env : 環境変数へのアクセスを許可

4. HTTPサーバーを作る

Node.jsと同じように、Denoでも簡単にHTTPサーバーを作成できます。

例: server.ts

import { serve } from "https://deno.land/std/http/server.ts";

const server = serve({ port: 8000 });
console.log("HTTP server is running on http://localhost:8000/");

for await (const req of server) {
  req.respond({ body: "Hello, Deno!" });
}

実行コマンド

deno run --allow-net server.ts

5. モジュールのインポート

Denoでは、Node.jsのようなnpmpackage.jsonは使用せず、URLから直接モジュールをインポートします。

例: URLからモジュールをインポート

import { serve } from "https://deno.land/std/http/server.ts";

これにより、依存関係をURLで指定でき、node_modulesが不要になります。

6. TypeScriptのサポート

DenoはTypeScriptをネイティブでサポートしており、特別な設定なしでTypeScriptファイルを実行できます。ファイルの拡張子が.tsの場合でも、直接実行するだけでOKです。

TypeScriptファイルの実行

deno run script.ts

7. Denoでのスクリプトのコンパイル

Denoはスクリプトをスタンドアロンの実行ファイルにコンパイルすることもできます。これにより、Denoがインストールされていない環境でも実行できます。

例: スクリプトをコンパイル

deno compile --allow-net server.ts

これにより、serverという実行ファイルが生成され、他のシステムでも直接実行可能です。

まとめ

Denoは、セキュリティが強化されている点やTypeScriptのネイティブサポート、シンプルなモジュール管理などが特徴です。Node.jsとは少し違う部分がありますが、使い始めると便利なランタイムですので、興味があればぜひ試してみてください。

Page 11 of 16.

前のページ 次のページ



[添付ファイル]

1.plugin.zip  


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626