将参数传递给npm的多命令脚本

时间:2019-11-26 12:01:36

标签: javascript node.js npm

这是我的scripts对象:

"scripts": {
    "version-update": "node version-generator.js",
    "build": "npm run version-update && webpack --mode production"
}

我想在version-update命令调用时向我的build命令传递一些参数,像这样:

npm run build -- --type=1

并在我的--type中获取version-generator.js arg。

但是当我这样做时,-- --type=1仅影响webpack --mode production,而我无法在version-generator.js中实现。

2 个答案:

答案 0 :(得分:0)

这是一个不太漂亮的解决方法,仅在Linux上有效。

  "scripts": {
    "version-update": "node version-generator.js",
    "build": "call_with_args() { npm run version-update -- \"$@\"; webpack --mode production \"$@\"; } && call_with_args"
  },

答案 1 :(得分:-1)

运行npm run build -- --type=1时,会将type=1作为脚本命令build的参数传递。

基于npm命令语法npm run <command> [-- <args>],您想要的内容与此类似:

"build": "npm run version-update -- <arg> && webpack --mode production"

不幸的是,npm没有内置功能来实现此目的。注意,需要--来分隔传递给npm命令本身的参数和传递给脚本的参数。并且参数被传递到脚本的末尾,而不是传递到中间。因此,您可以尝试以下操作:

"build": "webpack --mode production && npm run version-update --"