javascriptに関するメモです。
128 views
DenoはJavaScript/TypeScriptランタイムの1つで、Denoエコシステムを利用して構築されたサービスや機能のことを指します。Denoは、Node.jsを開発したRyan Dahl氏が手がけた次世代のJavaScript/TypeScriptランタイムで、Node.jsの課題を解決するために作られました。
Denoの特徴としては以下のような点があります:
package.json
やnode_modules
のような仕組みがありません。Denoを使う場合、Node.jsと同様にサーバーレス環境でスケーラブルなコードを動かせるため、TypeScriptでの開発をシンプルにしたい場合や、セキュリティをより強化したい場合などに適しています。
Denoの使い方を簡単に説明します。DenoはJavaScript/TypeScriptランタイムなので、Node.jsと似た部分もありますが、いくつかの特徴的な違いもあります。以下に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
DenoはJavaScriptやTypeScriptのスクリプトを直接実行できます。ファイル名が hello.ts
だとすると、次のように実行できます。
hello.ts
console.log("Hello, Deno!");
deno run hello.ts
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
: 環境変数へのアクセスを許可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
Denoでは、Node.jsのようなnpm
やpackage.json
は使用せず、URLから直接モジュールをインポートします。
import { serve } from "https://deno.land/std/http/server.ts";
これにより、依存関係をURLで指定でき、node_modules
が不要になります。
DenoはTypeScriptをネイティブでサポートしており、特別な設定なしでTypeScriptファイルを実行できます。ファイルの拡張子が.ts
の場合でも、直接実行するだけでOKです。
deno run script.ts
Denoはスクリプトをスタンドアロンの実行ファイルにコンパイルすることもできます。これにより、Denoがインストールされていない環境でも実行できます。
deno compile --allow-net server.ts
これにより、server
という実行ファイルが生成され、他のシステムでも直接実行可能です。
Denoは、セキュリティが強化されている点やTypeScriptのネイティブサポート、シンプルなモジュール管理などが特徴です。Node.jsとは少し違う部分がありますが、使い始めると便利なランタイムですので、興味があればぜひ試してみてください。
Page 11 of 16.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/