从模块中确定 npm 或 yarn script 运行

Determine npm or yarn script run from module

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

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

Insideindex.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' ]

是否可以检索我在 index.js 中 运行(startstart-with-flag)的脚本的值?

您可以访问当前使用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"
  }
}