Deno の import maps
Deno は import maps をサポートしている
import maps 自体は JavaScript の bare import specifier を動かす仕組み (仕様?) This allows "bare import specifiers", such as import moment from "moment", to work.
Deno では基本的に、以下のような import の書き方は module が解決できないが
code:typescript
import lodash from "lodash";
import react from "react";
deno.json に、import maps を記載しておくことで、module が解決されるようになる
npm: node: なども設定できる
deno.json での "imports" が利用できるのは 1.30.0 以降 それ以前は import_map.json を用意
code:json
{
"imports": {
"react": "npm:react@^18.0.0"
}
}
この仕組みは Deno のランタイム上での話 (deno.json を利用する必要がある) なので
ライブラリ作成者などは、 import map ではなく deps.ts 使うようにとのこと
実例
std/testing とかではなく std を設定している
$ の接頭辞をつけているものとつけていないものはどういう区別が?
code:json
{
"scopes": {
"THIS FILE EXISTS ONLY FOR VSCODE! IT IS NOT USED AT RUNTIME": {}
},
"imports": {
"$fresh/": "../",
}
}
code:typescript
import { assertArrayIncludes, assertEquals } from "$std/testing/asserts.ts";