Deno Advent Calendar 13日目の記事で、esbuild-deno-loader を使って Deno 互換スクリプトをバンドルする例を紹介しました。
これでも良いのですが、API 呼び出しが複雑なため、毎回この記述を思い出す・調べるのは少し面倒です。個人的には、毎回 esbuild を設定しなくても良いように、esbuild + esbuild-deno-loader の設定を入れた簡単なラッパー CLI を用意して、それを使ってフロントエンドのビルドをしています。
pack
というツールで、以下のようにして Deno から使えます。
deno -A jsr:@kt3k/pack script.ts -o script.js
以上の呼び出しで、script.ts
がバンドルされて、script.js
にファイルが保存されます。
Deno とほぼ互換なモジュール解決が出来て、以下のような Deno のモジュール機能に対応しています
- URL import
-
jsr:
import -
node:
import -
npm:
import - import map
Deno 互換の書き方でフロントエンド(ブラウザ)やその他のランタイム上でプログラムを動かしたい場合に上記ツールでバンドルするのが便利です。
Happy Isomorphic Deno Programming!