昔は実行時にimport-mapを自動で検出する方法が無かったため、コマンドラインフラグの--import-map
を渡す必要がありました。
deno run --import-map=./import_map.json ./mod.ts
しかし、Deno1.20以降ではdeno設定ファイルが自動検出されるようになったため、この機能を利用してimport-mapを自動検出できるようになりました。
import-mapを自動検出する方法
1. deno.jsonを作成する
deno.json
(deno設定ファイル)を作成します。
作成する場所はプロジェクトフォルダのルートディレクトリでOKです。
プロジェクトフォルダ(例)
project/
├ deno.json
├ import_map.json
└ mod.ts
ファイルの中には以下のように記述します。("import_map.json"
の所は各自の環境に合わせてパスを書く)
deno.json
{
"importMap": "./import_map.json"
}
2. 実行する
プロジェクトのルートフォルダにdeno.json
がある状態でdeno run
コマンドを実行すると、deno.json
が自動検出されます。そして、deno.json
の中で指定したimport-mapも自動で読み込まれます。
> deno run ./mod.ts # deno.jsonがあれば自動検出される
deno.jsonの検出アルゴリズムは、
- ファイル名を指定した場合(例:
deno run ./src/mod.ts
)→ファイルがある場所からルートディレクトリに遡って探索 - ファイル名を指定しない場合(例:
deno fmt
)→カレントディレクトリからルートディレクトリに遡って探索
という形になっています。
なおdeno.jsonではなくdeno.jsoncでも同様に動作します。
まとめ
import mapを自動検出するにはdeno.jsonを置く