我的应用程序有两个版本,一个版本我设置了 --extended,另一个不是,像这样
"scripts": {
"build": "webpack --mode production",
"extended": "webpack --mode production --extended",
// ...
}
现在,在我的网络包中,我像这样访问扩展
module.exports = (_env,argv)=> {
argv.extended
}
我正在尝试以跨平台的方式改进这一点,以做类似的事情
"scripts": {
"build": "webpack --mode production",
"extended": "--extended npm run build"
}
至于从extended
运行build
脚本,但仍访问--extended
变量。
我有办法做到这一点吗?谢谢
我阅读了整个问题如何从package.json中设置环境变量,但找不到方法
将package.json的scripts
部分更改为以下内容:
"scripts": {
"build": "webpack --mode production",
"extended": "npm run build -- --extended"
}
解释:
如可在此处找到的npm-run-script
文档中所述:
。
getopt
使用特殊选项--
来分隔选项的末尾。npm 会将--
后的所有参数直接传递给您的脚本:
因此,基本上当您通过CLI运行以下命令时:
$ npm run extended
npm 调用extended
脚本,然后运行build
脚本并将--extended
参数传递到脚本的末尾(即它传递--extended
到build
脚本的末尾)。
还有别的办法吗?
是的,您也可以考虑通过完全删除extended
脚本来进一步简化package.json的scripts
部分。
例如:
"scripts": {
"build": "webpack --mode production"
}
然后,您可以执行以下任一操作:
通过 CLI 运行以下命令:
$ npm run build
这将调用您的
build
脚本,而无需--extended
参数/选项。或者改为通过 CLI 运行以下命令:
$ npm run build -- --extended
这将使用
--extended
参数/选项调用您的build
脚本。