npm运行:如何在脚本调用中传递参数并用参数替换占位符

npm运行:如何在脚本调用中传递参数并用参数替换占位符,npm,npm-scripts,Npm,Npm Scripts,我想在my package.json中定义一个scripts条目,以简化几种环境的构建 在脚本执行过程中,我需要将$1(或占位符所需的任何语法)替换为传递给npm run build script的参数,例如--env=prod或更简单的,--prod。我该怎么做?我在这里找到的其他问题和答案并没有帮助我解决这个问题 “脚本”:{ “build for”:“ng build--输出路径=../../web/admin-v2--env=$1--base href=\”/admin-v2/\“” }

我想在my package.json中定义一个
scripts
条目,以简化几种环境的构建

在脚本执行过程中,我需要将
$1
(或占位符所需的任何语法)替换为传递给
npm run build script
的参数,例如
--env=prod
或更简单的,
--prod
。我该怎么做?我在这里找到的其他问题和答案并没有帮助我解决这个问题

“脚本”:{
“build for”:“ng build--输出路径=../../web/admin-v2--env=$1--base href=\”/admin-v2/\“”
}

我经常求助于为此类场景创建实用程序节点脚本,并通过
package.json
scripts
部分调用它


为.js构建

var nodeCLI=require('shelljs-nodeCLI');

var env='--env=foo';// 不完全是您想要的,但您可以使用环境变量并内联提供它们:

package.json脚本:
:“echo${ENV1}${ENV2}”

像这样跑:
ENV1=a ENV2=b npm运行

$npm运行
a b

谢谢您的回答,我们将尝试一下。npm似乎没有一个标准的机制来满足这一非常普遍的需求,这让人感到有点失望。我很高兴见到connexo。我也感到你的失望。我相信这项功能已被要求多次,例如。然而,相关部分是项目业主。它说:“对不起,我们不支持将参数传递到脚本中间。”。因此,我在答复中提供了变通办法。
$ npm run <script>
a b