确定从模块运行的npm或yarn脚本

时间:2017-11-08 18:23:50

标签: node.js npm argv yarnpkg npm-scripts

假设我的package.json文件中有以下脚本:

{
  "start": "node index.js",
  "start-with-flag": "node index.js -f"
}

index.js内我有一个console.log(process.argv),上面的脚本会输出以下内容:

$ npm run start
[ '/usr/local/Cellar/node/8.4.0/bin/node',
  '/Users/.../test_app/index.js' ]

$ npm run start-with-flag
[ '/usr/local/Cellar/node/8.4.0/bin/node',
  '/Users/.../test_app/index.js',
  '-f' ]

是否可以在start内检索我运行的脚本(start-with-flagindex.js)的值?

1 个答案:

答案 0 :(得分:2)

您可以使用npm_lifecycle_event环境变量访问当前执行的脚本。

命令

$ npm run start-with-flag

index.js

console.log(process.env.npm_lifecycle_event)  // start-with-flag

的package.json

{
  "scripts": {
    "start": "node index.js",
    "start-with-flag": "node index.js -f"
  }
}