processオブジェクトについて

コマンドライン引数を扱う上で最も重要なのが、Node.js実行環境のグローバル変数のひとつで、実行プロセスの情報の取得・操作を行う process オブジェクトである。
コマンドライン引数へは process オブジェクトの argv プロパティを使用するとアクセスできる。

$ node index.js hoge foo=bar
-----------------
console.log(process.argv);
/*
[
  '/Users/testuser/.nodebrew/node/v10.14.1/bin/node', // Node.jsの実行プロセスのパス
  '/Users/testuser/Desktop/index.js', // 実行したスクリプトのパス
  'hoge', // 1番目の引数
  'foo=bar' // 2番目の引数
]
*/

1・2番目の要素が使用する頻度が少なかったり、すべての引数が文字列できたりとなにかと不便であることが多いため、ライブラリを使用することが多い。
そのため、以下の例では「commander」というライブラリを使用して、パースを試みてみる。

const commander = require('commander');
commander.parse(process.argv);

console.log(commander.args[0]); // hoge
console.log(commander.args[1]); // foo=bar