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 ..