Deno v1.35.3
Deno v1.35.3がリリースされました。
deno lint
deno lint
コマンドで--rules
と--rules-tags
の併用がサポートされました。
指定されたタグを持つルールの一覧を表示できます。
# `fresh`タグを持つルールを一覧表示する
$ deno lint --rules --rules-tags=fresh
deno lsp
deno lsp
が以下のケースでもdeno.json
を検出するように改善されました。
deno.json
を新しく作成したときdeno.json
でシンタックスエラーが発生したとき
deno info
deno info
コマンドでImport Mapsで定義されたspecifierがサポートされました。
$ deno info --import-map=import_map.json preact
deno_std v0.196.0
deno_std v0.196.0がリリースされました。
std/http/server.tsでserve
とserveTls
が非推奨化されました。 (破壊的変更)
Deno v1.35でDeno.serve()
が安定化されているため、今後はそちらの使用が推奨されます。
remote_modules
のサポートについて
Deno本体でremote_modules
というディレクトリをサポートすることが検討されているようです。
feat: optional
remote_modules
directory (without lsp support) #19977
今のところ、以下のような振る舞いが想定されているようです。
deno.json
でremoteModulesDir: true
を設定すると、remote_modules
というディレクトリにサードパーティモジュールが保存されるようになります。(実質的にremote_modules
ディレクトリが$DENO_DIR/deps
として扱われます)remote_modules
ディレクトリには、deno vendor
コマンドによって作成されるvendor
ディレクトリと同様に、リーダブルなフォーマットで依存モジュールが保存されます。deno vendor
やremote_modules
を使わない場合、Denoはリモートからダウンロードしたサードパーティモジュールをファイル名をハッシュ化した状態で$DENO_DIR/deps
にキャッシュします。(そのため、サードパーティモジュールに関するデバッグが難しくなります。)
背景
このremote_modules
ディレクトリの導入の目的として、deno vendor
コマンドに関する以下の課題の解消などが背景としてあるようです。
deno vendor
コマンドで作成されたvendor
ディレクトリをグローバルキャッシュ(DENO_DIR
)として利用したい。deno vendor
コマンドは独自に生成したImport Mapsの使用を前提としているため、ユーザが自身で作成したImport Mapsと併用することが難しいこと。(Import Mapsはプロセスごとに一つしか指定できないため)- 依存パッケージのバージョンを変更するたびに
deno vendor
を実行する手間を軽減すること。
これらの課題を解消するために、remote_modules
という新しいディレクトリを導入することが検討されているようです。
詳しくは以下のissueで解説されています。