dinkというDenoのモジュールマネージャーを作った
keroxp.iconは結構Denoのモジュールを管理してるので
使い方
dinkいれる
code:bash
modules.jsonを作る
code:modules.json
{
"version": "@v0.17.0",
}
}
dink実行する
code:bash
$ dink -A
vendorディレクトリにこういうエイリアスファイルができる
code:txt
vendor
https
deno.land
std
fs/mod.ts
fs/path.ts
flags/mod.ts
中身はこうなってる
code:vendor/https/deno.land/std/fs/mod.ts
ESMのモジュールアグリゲーションを使い、module.jsonに記載されたバージョンprefixを挿入したURLをexportしている
こうすることで使う側からはバージョンを固定しなくても良くなる
code:index.ts
import * fs from "./vendor/https/deno.land/std/fs/mod.ts"
というのはdemと同じなのだけど…
dinkはdemと異なり、
module.jsonしかみない
dinkしかコマンドがない
リダイレクト先を探してリンクしてくれる
code:json
{
"version": "@v0.10.0",
}
}
こういうモジュールのエイリアスはこうなる(denopkg.comはraw.gihubusercontent.comにリダイレクトするので)
code:vendor/https/denopkg.com/keroxp/servest/server.ts
この実態ファイルを特定してリンクできるのはかなりメリットがある
Denoはurlモジュールがリダイレクトされた場合、そのリダイレクト先にファイルを保存してしまう
のでtsconfig.jsonのpath記述ではこのリダイレクトを追えなくてコードジャンプが使えないというデメリットがある
urlとDenoのキャッシュファイルが対応するとIntelliJのコードジャンプが使えるので大変便利
https://gyazo.com/b6a581633013050a989f9a394ac0eb8c