Windowsユーザーにてきとうにnode.jsプログラムを配る
-- 2015/12/04 10:39
うっかり遅れてしまいましたが、これはNode.js その2 Advent Calendar 2015の3日目の記事です。Qiitaでもなくてすみません。
2日目はnode.jsでバイナリファイルやバイナリデータをいじる 4日目は俺的gulpでTypeScriptをインクリメンタルビルドする です。
突然ですが、軽量言語で簡単なツールを作りたいという場合、ありますね。
で、それを人に配布したいという場合、どうするでしょうか。
プログラマ間ならgithubにあげるとか、npmやらCPANやらRubyGemsやらに上げるとかいろいろ定石があるんですが、
でも、プログラマでは無い、しかもWindowsユーザーなんかに配るというケースが発生した場合は?
自分のケースでいうと、ゲームを作っている時に、デザイナーや企画の人がデータをいじったりするツールを作りたいということがありました。
とくにゲームのパラメータとか、最終的にゲームに投入する形はJSONとかそういうのになるんですが、それをプログラマ以外に手書きしろっていうのはやっぱ酷な話。
というか、いや、むしろプログラマこそ手書きしない。そのためのツールを作れるから。
だったら安直に考えればJSONをプログラマがいじればいいんですけど、でもプランナーだけでデータ調整してゲームの体感チェックしたいじゃないですか。
なのでそういったツールをちゃちゃっと作って気軽に配りたいわけです。
そのちゃちゃっと作って気軽に配ること、node.jsならできます。
方法は簡単。
1. node.exeを落としてくる
2. ライセンスも落としてくる
3. てきとうにmain.jsとかにjavascriptを書く
4. main.js冒頭に下記を追記し、拡張子をbatにする(改行はCRLFで)
参考: バッチファイルでNode.jsを1ファイルで実行する方法
5. node.exeとLICENSEとmain.jsをてきとうにzipにしてWindowsユーザーに送って、「ここらへんのフォルダにおいて、main.batをダブルクリックしてNE」と言う。
ね。簡単でしょ()
PerlやRubyなど他の軽量言語ではこうはいかないです。
あれらは実質perl.exe、ruby.exeだけで動くものではありません。
いえ、perl522.dllがいるというのもそうですが、node.jsとの大きな違いはライブラリの扱い方。
Perlで
perl.exe以外にいくらの*.pmファイルを同梱しなければならないことか。
調べるのも大変だし、かといって全部入れようとなるとクソでかい。
Perlなどの言語は基本がっつりPCにインストールされることを想定していて、そのためモジュールも整理されて細切れになっているわけです。
node.jsはそれと違って、node.exeに標準添付モジュールを全て同梱する形になっているので、このようなかんたん配布ができるわけです。
というわけで、Windows用コマンドラインツールをてきとーに作りたい場合は、node.jsがおすすめです!(てきとう
以上、
遅れたせいで最初からリンクを張れる4日目は俺的gulpでTypeScriptをインクリメンタルビルドするです。
2日目はnode.jsでバイナリファイルやバイナリデータをいじる 4日目は俺的gulpでTypeScriptをインクリメンタルビルドする です。
突然ですが、軽量言語で簡単なツールを作りたいという場合、ありますね。
で、それを人に配布したいという場合、どうするでしょうか。
プログラマ間ならgithubにあげるとか、npmやらCPANやらRubyGemsやらに上げるとかいろいろ定石があるんですが、
でも、プログラマでは無い、しかもWindowsユーザーなんかに配るというケースが発生した場合は?
自分のケースでいうと、ゲームを作っている時に、デザイナーや企画の人がデータをいじったりするツールを作りたいということがありました。
とくにゲームのパラメータとか、最終的にゲームに投入する形はJSONとかそういうのになるんですが、それをプログラマ以外に手書きしろっていうのはやっぱ酷な話。
というか、いや、むしろプログラマこそ手書きしない。そのためのツールを作れるから。
だったら安直に考えればJSONをプログラマがいじればいいんですけど、でもプランナーだけでデータ調整してゲームの体感チェックしたいじゃないですか。
なのでそういったツールをちゃちゃっと作って気軽に配りたいわけです。
そのちゃちゃっと作って気軽に配ること、node.jsならできます。
方法は簡単。
1. node.exeを落としてくる
2. ライセンスも落としてくる
3. てきとうにmain.jsとかにjavascriptを書く
4. main.js冒頭に下記を追記し、拡張子をbatにする(改行はCRLFで)
rem=0;/*
"%~dp0\node" %~0 %*
pause
exit
*/
参考: バッチファイルでNode.jsを1ファイルで実行する方法
5. node.exeとLICENSEとmain.jsをてきとうにzipにしてWindowsユーザーに送って、「ここらへんのフォルダにおいて、main.batをダブルクリックしてNE」と言う。
ね。簡単でしょ()
PerlやRubyなど他の軽量言語ではこうはいかないです。
あれらは実質perl.exe、ruby.exeだけで動くものではありません。
いえ、perl522.dllがいるというのもそうですが、node.jsとの大きな違いはライブラリの扱い方。
Perlで
use utf8;
を書きたい場合、binmode STDOUT, ":encoding(cp932)";
を書きたい場合……perl.exe以外にいくらの*.pmファイルを同梱しなければならないことか。
調べるのも大変だし、かといって全部入れようとなるとクソでかい。
Perlなどの言語は基本がっつりPCにインストールされることを想定していて、そのためモジュールも整理されて細切れになっているわけです。
node.jsはそれと違って、node.exeに標準添付モジュールを全て同梱する形になっているので、このようなかんたん配布ができるわけです。
というわけで、Windows用コマンドラインツールをてきとーに作りたい場合は、node.jsがおすすめです!(てきとう
以上、
遅れたせいで最初からリンクを張れる4日目は俺的gulpでTypeScriptをインクリメンタルビルドするです。
- 関連記事
-
-
Webでいまいちくすぶっている技術をElectronにのせると格段に便利になることがある気がする 2015/12/07
-
様々なLinux Desktopがあるぞい 2015/12/05
-
Windowsユーザーにてきとうにnode.jsプログラムを配る 2015/12/04
-
デプロイツール 2015/09/04
-
ちょっと微妙なsplit()の挙動 2015/06/30
-

コメント