WebAssembly の ブラウザ / Node.js 両対応な JavaScript ラッパーを作る

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
Copied!
# wasm-pack-inline.mjs のパスは適宜調整してください。
wasm-pack build --target web && cd pkg && zx ~/wasm-pack-inline.mjs && cd ..

Powered by Helpfeel