LoginSignup
2
0

More than 1 year has passed since last update.

【Deno1.20~】import-mapを自動検出する

Last updated at Posted at 2022-04-01

昔は実行時に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を置く。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0