LoginSignup
4
3

More than 3 years have passed since last update.

nodeをコマンドラインから実行する時にyargsを使い引数を渡すと便利

Last updated at Posted at 2018-11-03

nodeをコマンドラインから実行する時に引数を渡したい場合にはprocess.argvを使えば良い。例えばnode test.js hogeと実行するとprocess.argv[2]でhogeを取得することができる。

しかし、この方法だとコマンドラインからもソースコードからも引数の意味を理解することが難しくなり、将来的にメンテナンスが難しくなってしまう。ということで何か良いモジュールが無いかと探していたところ、yargvが良さそうだったので使ってみた。

npm install yargs --save

とかしてインストールしてrequire('yargs')をソースコード内に書いてやれば様々な形式の引数が簡単に使えるようになる。コードを見た方が理解が早いと思うので、コードと実行結果を載せておきます。

const yargv = require('yargs').argv;
console.log("process.argv[2]:" + process.argv[2]);
console.log("yargv.option:" + yargv.option);
console.log("yargv.x:" + yargv.x);
console.log("yargv.production:" + yargv.production);
console.log("yargv.s:" + yargv.s);
console.log("yargv.i:" + yargv.i);
console.log("yargv.j:" + yargv.j);

コードを実行すると下記のように出力される

$ node test.js --option=nodebug -x=10 --production -s -ij
process.argv[2]:--option=nodebug
yargv.option:nodebug
yargv.x:10
yargv.production:true
yargv.s:true
yargv.i:true
yargv.j:true

より詳しくはgithubにexampleが多く載っているのでそちらを参考に
https://github.com/yargs/yargs/blob/master/docs/examples.md

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3