这是我的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
中实现。
答案 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 --"