スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 

Node.js API (process) - コマンドライン引数の取得

Node.js を使うと JavaScript を PC 上で動作できるようになります。 プログラムとして動作させる場合、コマンドライン引数を使いたくなることがあります。
今回は Node.js でコマンドライン引数を取得する方法の紹介です。

コマンドライン引数

コマンドライン引数は process.argv の配列に格納されています。
process は 標準モジュールの 一つである Process モジュールが提供する グローバルオブジェクトで、プログラムのどこからでも使えます。


process_arg.js :
for (let cnt in process.argv) {
    console.log('%d : %s', cnt, process.argv[cnt]);
}
$ node --no-deprecation process_arg.js foo bar
0 : c:\Program Files\nodejs\node.exe
1 : d:\home\programmers_notes\node\process_arg\process_arg.js
2 : foo
3 : bar
process.argv では 先頭に node のパス、 2 番めにスクリプトファイルのパスが格納され、 引数はそれ以降です。 process.argv は node プログラム自体に渡される引数は入っていません。
あまり必要になることはありませんが、 もしそれらの引数が必要な場合は process.execArgv に格納されています。 また、 node やスクリプトファイルのパスは process.argv 以外から取得することもできます。

メソッド(オブジェクト) 対象
process.argv スクリプトの引数の配列
process.execArgv node の引数の配列
process.execPath node のパス
__dirname スクリプトファイルのディレクトリーのパス
__filename スクリプトファイルのパス

console.log('process.execArgv = ', process.execArgv);
console.log('process.execPath = ', process.execPath);
console.log('__dirname        = ', __dirname);
console.log('__filename       = ', __filename);
process.execArgv =  [ '--no-deprecation' ]
process.execPath =  c:\Program Files\nodejs\node.exe
__dirname        =  d:\home\programmers_notes\node\process_arg
__filename       =  d:\home\programmers_notes\node\process_arg\process_arg.js

npm からの起動

npm の scriptsstart などにコマンドを書くことによって、 npm から起動することができます。 package.json :
{
  "name": "process_arg",
  "version": "1.0.0",
  "main": "process_arg.js",
  "scripts": {
    "start": "node process_arg.js"
  },
  "license": "ISC"
}
npm から起動した場合、引数は npm の引数となります。 スクリプトに引数を渡したい場合は "--" 以降に記述します。
$ npm start -- foo bar

> process_arg@1.0.0 start d:\home\programmers_notes\node\process_arg
> node process_arg.js "foo" "bar"

0 : C:\Program Files\nodejs\node.exe
1 : d:\home\programmers_notes\node\process_arg\process_arg.js
2 : foo
3 : bar

process.execArgv =  []
process.execPath =  C:\Program Files\nodejs\node.exe
__dirname        =  d:\home\programmers_notes\node\process_arg
__filename       =  d:\home\programmers_notes\node\process_arg\process_arg.js


スポンサーサイト
 
このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
9位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

02月 | 2016年03月 | 04月
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。