Deno の開発を始めるための基本的な手順は以下の通りです。
- Deno のインストール
- 環境構築
- プロジェクトの作成
インストール
環境によってインストール方法は異なるため、適切な手段を選んでください。
MacOS や Linux では、次のコマンドでインストールできます。
curl -fsSL https://deno.land/install.sh | sh
Windows では、次のコマンドでインストールできます。
irm https://deno.land/install.ps1 | iex
他の方法や詳しいインストール方法は公式のドキュメントを参照してください。
以下のコマンドを実行してバージョンが表示されればインストールは成功しています。
deno --version
環境構築
エディター
Visual Studio Code(VSCode)、JetBrain IDE には Deno での開発をサポートする拡張機能が存在するため、エディターとしては Visual Studio Code または JetBrain IDE をお勧めします。
VSCode では拡張機能検索タブからDeno
と検索し、Denoland から提供されている拡張機能をインストールします。その後、Ctrl+Shift+P
で表示されるコマンドパレットでDeno: Initialize Workspace Configuration
を入力し実行することでワークスペースに Deno が設定され、 VSCode で Deno 開発を行うための設定が完了します。
JetBrain IDE では File > Settings の Plugins 画面からDeno
と検索し公式から提供されているプラグインをインストールしてください。Deno で開発を行うプロジェクトにてフレームワークとして Deno が認識されていれば設定は完了です。
ネットワーク関連設定
プロキシや証明書を使用したい場合、Deno ランタイムでは特別な環境変数を設定する必要があります。
プロキシの環境設定
HTTP_PROXY=http://<ユーザ名>:<パスワード>@<proxyサーバのアドレス>:<ポート>
HTTPS_PROXY=http://<ユーザ名>:<パスワード>@<proxyサーバのアドレス>:<ポート>
証明書の環境設定(特定の証明書を参照する場合)
DENO_CERT=<証明書までのパス>
証明書の環境設定(システム証明書ストアを参照する場合)
DENO_TLS_CA_STORE=system
Deno コマンド実行時に証明書を指定して実行することも可能です。
deno --cert <証明書までのパス> main.ts
プロジェクトの作成
Deno では以下のコマンドで新しいプロジェクトを作成できます。
deno init my_project
以下のような構造を持つプロジェクトのディレクトリが作成されます。
my_project
├── deno.json // プロジェクト設定ファイル
├── main_test.ts // アプリケーションファイル
└── main.ts // アプリケーションテストファイル
作成されたmain.ts
には2つの数字を足し合わせるシンプルなプログラムが記述されています。以下のコマンドで実行できます。
deno run main.ts
設定ファイル
Deno には標準的な設定ファイルが存在しません。Deno は設定なしで動作し、必要な設定は基本的にコマンドラインオプションで行います。ただし、オプションとしていくつかの設定を deno.json に記述することができます。
deno.json には以下の内容を指定できます。
-
tsconfig.json
の設定 -
import-maps
の設定 - Deno のサブコマンド関連の設定
-
deno task
コマンドの設定 - ロックファイルの設定
tsconfig.json
の設定
tsconfig.json
で記述する設定を同様の書き方で Deno に反映させることができます。
{
"compilerOptions": {
"allowJs": true,
"lib": ["deno.window"],
"strict": true
}
}
import-maps
の設定
import-maps
を設定することで Deno で使用したいモジュールを一元管理することができます。Deno での一元管理については モジュールの一元管理 を参照してください。
{
"imports": {
"@luca/cases": "jsr:@luca/cases@^1.0.0",
"cowsay": "npm:cowsay@^1.6.0",
"cases": "https://deno.land/x/case/mod.ts"
}
}
Deno のサブコマンド関連の設定
Deno のサブコマンドであるdeno lint
、deno fmt
の設定を記述することができます。
実際の設定項目やサブコマンドの使い方は # リンター・フォーマット で詳しく記述しています。
{
"lint": {
// lint対象ファイル
"include": ["src/"],
// lint対象除外ファイル
"exclude": ["src/testdata/", "src/fixtures/**/*.ts"],
// lintのルール設定
"rules": {
"tags": ["recommended"],
"include": ["ban-untagged-todo"],
"exclude": ["no-unused-vars"]
}
},
"fmt": {
// フォーマット設定
"useTabs": true,
"lineWidth": 80,
"indentWidth": 4,
"semiColons": false,
"singleQuote": true,
"proseWrap": "preserve",
// フォーマット対象ファイル
"include": ["src/"],
// フォーマット対象除外ファイル
"exclude": ["src/testdata/", "src/fixtures/**/*.ts"]
}
}
deno task
コマンドの設定
Node.js のnpm run script
に相当するスクリプト実行を簡略化するための設定を記述することができます。
{
"tasks": {
"start": "deno run --allow-read main.ts"
}
}
上記の設定を記述しておくことで、npm run script
と同様に、以下のコマンドでdeno run --allow-read main.ts
を省略化した形で実行できます。
deno task start
ロックファイルの設定
Deno が依存関係の整合性を保証するために使用するロックファイルの設定を行うことができます。ロックファイルの場所を指定したり、使用を無効にすることも可能です。何も指定しない場合、デフォルトでロックファイルは使用され、パスは./deno.lock
に設定されています。
{
"lock": {
"path": "./deno.lock",
"frozen": true
}
}
{
"lock": false
}