将 shell 变量的值更改为 npm 运行 命令的参数

Change value of shell variables as an argument of npm run command

我正在尝试完成以下任务 -> 现在我使用 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

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

DEV_ENV=dev2 USER_TYPE=empty npm run cy

它会改变DEV_ENVUSER_TYPE的值。

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

中解析参数
if [ ! -z "" ]; then
  # do whatever here...
fi