WebAssembly の ブラウザ / Node.js 両対応な JavaScript ラッパーを作る
wasm-pack は、以下の3種類のビルド出力に対応している。Deployment - The wasm-bindgen Guide
Webpack
--target bundler Node.js
--target nodejs Browser
--target web wasm-pack で JavaScript ラッパーを作り、Browser と Node.js に両対応した npm パッケージを作りたい。
--target web を指定すると、デフォルトでは fetch を使って .wasm を読み込む。 fetch の代わりに .wasm ファイルをインライン化すれば、Browser と Node.js に両対応できるかもしれない。.wasm のインライン化スクリプト
.wasm ファイルをインライン化して、Browser / Node.js 両対応させる zx🐚 スクリプトを書いた。
wasm-pack-inline.mjs を使って、以下のようにビルドする。
bash# wasm-pack-inline.mjs のパスは適宜調整してください。wasm-pack build --target web && cd pkg && zx ~/wasm-pack-inline.mjs && cd ..