nodeを使えばJavaScriptでローカルで動くコマンドなどを作ることが出来ます。これはとても便利で個人的にはよく使うのですが、そのためには予めnodeがインストールされていなければなりません。 もちろんバイナリでも配布されているのですが、インストールの手間は初回実行には相当大きいと言えます。そこで使ってみたいのがnodeスクリプトを実行ファイル化するnexeです。

nexeの使い方

nexeは他の同じようなソフトウェアと同じく、nodeの実行エンジンをスクリプトと一緒にするタイプのソフトウェアです。

コンパイルはこのように行います。

nexe -i ./ -o ./hello-world.nex -r 0.8.18

コンパイルのためにnodeのコンパイルまで行うので初回は時間がかかります。2回目以降は割合スムーズに実行ファイル化されます。

コンパイル中…初回は長いです。

実際に実行してみた結果です。

$ ./hello-world.nex 
started HTTP server on port 1337

nexe.js:37
http.createServer(function(req, res) {
     ^
TypeError: Cannot call method 'createServer' of undefined
    at Array.call./Users/nakatsugawa/Downloads/nexe/examples/hello-world/index.js.http [as 0] (nexe.js:37:6)
    at initModule (nexe.js:13:11)
    at Array.forEach (native)
    at nexe.js:22:8
    at nexe.js:29:4
    at NativeModule.compile (node.js:621:5)
    at Function.NativeModule.require (node.js:589:18)
    at Function.Module._load (module.js:297:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)

今はモジュールの読み込み周りでエラーが出てしまうようです…(予め用意しておく必要がありそうです)。しかしこれがうまくいけばWebブラウザで動かすようなソフトウェアも簡単に配布できるようになりますね。

nexeはnode/JavaScript製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

crcn/nexe