在package.json中设置argv并运行不同的脚本



我的应用程序有两个版本,一个版本我设置了 --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.jsonscripts部分更改为以下内容:

"scripts": {
"build": "webpack --mode production",
"extended": "npm run build -- --extended"
}

解释:

如可在此处找到的npm-run-script文档中所述:

getopt使用特殊选项--来分隔选项的末尾。npm 会将--后的所有参数直接传递给您的脚本:

因此,基本上当您通过CLI运行以下命令时:

$ npm run extended

npm 调用extended脚本,然后运行build脚本并将--extended参数传递到脚本的末尾(即它传递--extendedbuild脚本的末尾)。


还有别的办法吗?

是的,您也可以考虑通过完全删除extended脚本来进一步简化package.jsonscripts部分。

例如:

"scripts": {
"build": "webpack --mode production"
}

然后,您可以执行以下任一操作:

  1. 通过 CLI 运行以下命令:

    $ npm run build
    

    这将调用您的build脚本,而无需--extended参数/选项。

  2. 或者改为通过 CLI 运行以下命令:

    $ npm run build -- --extended
    

    这将使用--extended参数/选项调用您的build脚本。

相关内容

  • 没有找到相关文章

最新更新