node.jsによるコマンドラインツール


node.jsでコマンドラインツールを作るために覚えることはほとんどありません。
package.jsonにコマンドラインツールとして提供したいjsファイルを以下のように書くだけです。ここでは、実行するjsファイルをcli.jsとします。

package.json
"bin": "cli.js"

また、パッケージ名を名前を変えたい場合は、以下のようにも書くことができます。

package.json
"bin": {
    "long-command": "cli.js"
}

cli.jsの1行目に以下を記述します。

#!/usr/bin/env node

試しにコマンドラインで1 2 3と引数を渡すと6と表示される足し算をするコマンドラインツールをつくってみます。

package.json
{
  "name": "sum",
  "bin": "cli.js"
}
cli.js
#!/usr/bin/env node
'use strict';
const args = process.argv.slice(2);

function sum(args) {
    return args.reduce((sum, v) => {
        return sum + Number(v);
    }, 0);
}

console.log(sum(args));

あとは、cli.jsに実行権限をつけて完成です。

./cli.js 1 2 3
// 6

簡単ですね。

引数のオプションを利用したい場合は、sindresorhus/meow: CLI app helperが便利です。
また、より複雑なことをしたい場合は、sindresorhus/awesome-nodejs: A curated list of delightful Node.js packages and resources.を見るといいと思います。node.jsのコマンドラインインターフェースのためのライブラリがまとまっています。