Npm运行脚本使用if语句

huangapple go评论76阅读模式
英文:

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.

huangapple
  • 本文由 发表于 2023年8月5日 15:20:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/76840541.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定