Node.js 角度:带有参数的npm脚本
我的package.json中有几个npm脚本,如下所示:Node.js 角度:带有参数的npm脚本,node.js,npm,angular-cli,package.json,npm-scripts,Node.js,Npm,Angular Cli,Package.json,Npm Scripts,我的package.json中有几个npm脚本,如下所示: “脚本”:{ “服务印度本地”:“ng服务——亲印度项目-c本地”, “服务印度雄鹿”:“ng服务——亲印度项目-c雄鹿”, “服务印度产品”:“ng服务——亲印度项目-c产品”, ... } 巴西也是如此 “脚本”:{ ... “服务巴西本地”:“ng服务——亲巴西项目-c本地”, “服务巴西雄鹿”:“ng服务——亲巴西项目-c雄鹿”, “服务巴西产品”:“ng服务——亲巴西项目-c产品” } 同样,我可以为不同的国家/地区和配置
“脚本”:{
“服务印度本地”:“ng服务——亲印度项目-c本地”,
“服务印度雄鹿”:“ng服务——亲印度项目-c雄鹿”,
“服务印度产品”:“ng服务——亲印度项目-c产品”,
...
}
巴西也是如此
“脚本”:{
...
“服务巴西本地”:“ng服务——亲巴西项目-c本地”,
“服务巴西雄鹿”:“ng服务——亲巴西项目-c雄鹿”,
“服务巴西产品”:“ng服务——亲巴西项目-c产品”
}
同样,我可以为不同的国家/地区和配置提供更多的脚本
我想将其简化为一个脚本,在该脚本中,我只需要2个参数:
countryName
config
“服务印度产品”:“ng服务——项目pro-$countryName-c$config”
有人能帮我实现这一点吗?您可以使用shell变量轻松实现这一点 在
scripts
下的package.json
中,包括您的npm脚本
比如说
{
"scripts":{
"serve-prod": "ng serve --project pro-$countryName -c $config"
}
}
在cli中作为
countryName=india config=local npm run service prod
这在跨平台的情况下不会很好地工作,但您可以使用或您可以通过shell变量轻松完成这一点 在
scripts
下的package.json
中,包括您的npm脚本
比如说
{
"scripts":{
"serve-prod": "ng serve --project pro-$countryName -c $config"
}
}
在cli中作为
countryName=india config=local npm run service prod
这在跨平台情况下不太适用,但您可以使用或这在*nix平台上很有用npm使用sh
作为默认shell,因此您可以将npm脚本包装在shell函数中并引用两个参数(即countryName
和config
)使用$1
和$2
位置参数。但是,如果您想要一个跨平台的解决方案(即一个也适用于Windowscmd
shell的解决方案),那么您需要使用node.js助手脚本。请参阅我的答案以进一步了解;使用*nix shell函数,您的npm脚本可以定义为:“serve”:“func(){ng serve--project\“pro-${1}\”-c\“${2}\”;};func”
。然后调用命令,例如npm run serve brazil prod
或npm run serve india local
等。还可以为$1
和$2
位置参数提供。例如,如果将npm脚本更改为:“serve”:“func(){ng serve--project\'pro-${1:-india}\”-c\“${2:-prod}\”;};func”
。现在,如果您在不带任何参数的情况下运行命令来调用npm脚本,例如npm run serve
,它将默认为pro india
和prod
。但是,当您使用参数(例如npm run serve brazil prod
)运行命令时,它将使用pro brazil
和prod
。这在*nix平台上非常有用。npm使用sh
作为默认shell,因此您可以将您的npm脚本包装在shell函数中并引用这两个参数(即countryName
和config
)使用$1
和$2
位置参数。但是,如果您需要跨平台解决方案(即也适用于Windowscmd
shell的解决方案)然后您需要使用node.js帮助程序脚本。请参阅我的答案以进一步了解。例如,使用*nix shell函数,您的npm脚本可以定义为:“serve”:“func(){ng serve--project\“pro-${1}\”-c\“${2}\”;};func”
。然后调用命令,例如npm run serve brazic prod
或npm run serve india local
等。您还可以为$1
和$2
位置参数提供一个。例如,如果您将npm脚本更改为:“service”:“func(){ng serve--pro pro pro pro-${1:-india}\-c\”${2:-prod}\“;};func”
。现在,如果您在不带任何参数(例如npm run serve
的情况下运行命令来调用npm脚本,它将默认为pro india
和prod
。但是当您使用参数(例如npm run serve brazil prod
运行命令时,它将使用pro brazil
和prod
)。