Node.js スクリプトをシングルバイナリにできる boxednode を試してみた

単一の Node.js スクリプトファイルを、Node.js 本体込みのシングルバイナリにビルドできる boxednode というツールを見つけたので試してみる。

$ echo "console.log('Hello World');" > example.js
$ npx boxednode -s example.js -t example

$ ./example
Hello World

初回は Node.js をダウンロード・コンパイルしているようで、15分くらいかかった。2回目以降は、1回のビルドに3分ぐらいだったかな。

上のコンパイル済み example のファイルサイズは、なんと 76MB。ホントに Node.js をまるっと固めてるだけっぽい…。Go 言語で似たような Hello World をシングルバイナリにすると 2MB 程度で済んだので、コレはちょっと重たいかな。

Not supported

  • Multiple JS files

とあるように、複数ファイルを require() しているようなスクリプトはバイナリ化できない。

うーん、ファイルサイズも大きいし、シングルファイルしか扱えないし、イマイチ使い所が分からないなぁ…。