昔は実行時に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.jsonc
(deno設定ファイル)を作成します。
作成する場所はプロジェクトフォルダのルートディレクトリでOKです。
プロジェクトフォルダ(例)
project/
├ deno.json
└ mod.ts
ファイルの中にはimport-mapを直接記述します。
deno.json
{
"imports": {
"lodash": "https://esm.sh/lodash@4.17.21"
}
}
あるいは、別のファイルにimport-mapを切り出すこともできます。その場合、importMap
キーにパスを指定します。("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を置く。