【问题标题】:Change value of shell variables as an argument of npm run command更改 shell 变量的值作为 npm run 命令的参数
【发布时间】:2021-07-26 12:30:20
【问题描述】:

我正在尝试完成以下任务 -> 现在我使用 cypress 运行 e2e 测试。它是由 npm 命令启动的。我有几个环境和不同的用户权限。我创建了一个 shell 脚本,其中存储了环境值和用户权限。我想要做的是有机会运行带有参数的 npm 命令来更改 shell 脚本中变量的值。有人可以提供线索,这甚至可能吗?预期的行为是这样写:

npm run cy dev3,full

并且有机会改变shell脚本变量的值来启动必要的环境和改变用户权限的值。

package.json 命令:

"scripts": {
    "cy": "./scripts/cypress.sh",
}

cypress.sh 文件内容

#!/usr/bin/env bash
DEV_ENV="${DEV_ENV:-"dev3"}"
USER_TYPE="${USER_TYPE:-"full"}"

COMMAND="cypress open \
--browser chrome \
--config baseUrl=https://environment-$DEV_ENV.com \
--env DEV_ENV=https://environment-$DEV_ENV.com,USER_TYPE=$USER_TYPE
"
eval $COMMAND

【问题讨论】:

    标签: bash shell npm-scripts


    【解决方案1】:

    您是否尝试更改在cypress.sh 中看到的环境变量?如果是这样,您可以像这样执行npm run

    DEV_ENV=dev2 USER_TYPE=empty npm run cy
    

    它会改变DEV_ENVUSER_TYPE的值。

    如果您想使用您提供的格式(npm run cy dev3,full)严格运行它,则将参数dev3,full 传递给cypress.sh,因此您可以直接在cypress.sh 中解析参数:

    if [ ! -z "$1" ]; then
      # do whatever here...
    fi
    

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 2015-01-21
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多