英文:
Npm run script using if sentence
问题
{
"翻译结果": "我想要创建一个像这样的npm运行脚本:\n\n {\n "config": {\n "acc": 如果 ({npm_config_env} == "dev") "account1" else "account_2"\n },\n "scripts":{\n "con": "AWS_DEFAULT_PROFILE=${npm_package_config_acc} aws s3"\n }\n }\n\n当运行 npm run con --env=dev
时应该使用account1。\n\n当运行 npm run con --env=prod
时应该使用account2。\n\n这是否可能?我在Google上搜索了一下,但不确定npm run是否可以使用if语句。\n\n如果有其他解决方法,我会非常感激。"
}
英文:
I want to make npm run scirpt like this with
{
"config": {
"acc": if ({npm_config_env} == "dev") "account1" else "account_2"
},
"scripts":{
"con": "AWS_DEFAULT_PROFILE=${npm_package_config_acc} aws s3"
}
}
when run npm run con --env=dev
account1 should be used.
when run npm run con --env=prod
account2 should be used.
Is it possible? I googled around but not sure npm run can use if sentence or not.
If there is any other workaround, I really appreciated.
答案1
得分: 1
如 package.json 是 JSON 格式文件,它不支持 if else 或任何与编程相关的语法。
针对这种用例的一个解决方法是使用 shell 脚本中的 if else,因为 package.json 中的 "scripts" 在 shell 中执行。
{
"scripts": {
"con": "AWS_DEFAULT_PROFILE=$(if [ $npm_config_env = dev ]; then echo \"account1\"; else echo \"account_2\"; fi) aws s3"
}
}
上述脚本将有条件地分配值给 AWS_DEFAULT_PROFILE
。
注意:由于这些脚本在 shell 中执行,因此脚本应特定于 shell。上述脚本适用于 bash 或相关的 shell。
英文:
As package.json is JSON
format file, it won't support if else or any of the programming related syntax.
One workaround for this usecase is to use if else from shell script, as scripts
in package.json executed in shell.
{
"scripts": {
"con": "AWS_DEFAULT_PROFILE=$(if [ $npm_config_env = dev ]; then echo \"account1\"; else echo \"account_2\"; fi) aws s3",
}
}
The above script will assign value to AWS_DEFAULT_PROFILE
conditionally.
Note: As this scripts executes in shell, the script should be shell specific. The above scripts works in bash or related shells.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论