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のコマンドラインインターフェースのためのライブラリがまとまっています。