web-dev-qa-db-ja.com

npm run-scriptを介してnodejsアプリケーションにフラグを渡す方法は?

「npm」コマンドで実行するNodeJSファイルがあります。私はすべての引数(フラグを含む)をリストしようとしています。 node exeを直接呼び出して実行すると正常に動作しますが、npmコマンドを使用するとフラグにアクセスできません。

コード:

console.dir(process.argv);

このようにファイルを実行すると、

node file.js arg1 arg2 -f --flag2

私はすべての議論を得ることができます。

[ '/usr/local/bin/node',
  '/.../file.js',
  'arg1',
  'arg2',
  '-f',
  '--flag2' ]

しかし、npmランナーをpackage.jsonファイルに追加してそれを使用して実行しようとすると、引数のみを取得でき、フラグは取得できません。

npm run test arg1 arg2 -f --flag2

結果:

[ '/usr/local/bin/node',
  '/.../file.js',
  'arg1',
  'arg2' ]

package.jsonファイル:

{
  "name": "name",
  "version": "1.0.0",
  "description": "",
  "main": "test.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "test" : "node test.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

基本的に、ノードは実行中のスクリプトにフラグを渡しません。これに対する解決策はありますか?私の実際のプロジェクトには多くの引数がある長いパスがあるので、ショートカットを使用してテストしたいと思います。

12
amone

引数の前に二重ダッシュを使用します。

npm run test -- arg1 arg2 -f --flag2
14
alexmac