如何将环境变量的右值作为 NPM 脚本的 CLI 参数传递
How to pass r-value of an environment variable as a CLI argument for an NPM script
目标:有没有一种方法或技巧可以让我将环境变量的 r 值添加为 NPM 脚本的 CLI 参数 而无需调用单独的脚本?
示例:
- 脚本:
"test:run": cypress run --spec 'tests/*' --env host=
- 用法:
npm run test:run localhost
- 预期:
cypress run --spec 'tests/*' --env host=localhost
我目前使用的是:
- 脚本:
"test:run": cypress run --spec 'tests/*' --env
- 用法:
npm run test:run host=localhost
- 结果:
cypress run --spec 'tests/*' --env host=localhost
这行得通,但我想知道是否有一种方法甚至可以省略在我的命令中添加 host=
,这样我就可以只写 r 值,localhost
为简洁起见。
我不认为你想要实现的是你想要实现的,因为 npm 如何打破 command-line 争论。传入的任何内容都作为单独的“选项”附加,而不是仅添加到现有字符串,这是您当前看到的行为 (npm run test:run localhost
=> cypress run --spec 'tests/*' --env host= localhost
).
有几个备选方案,这些似乎是您不想做的,但您可以为该行为创建一个单独的脚本。
"test:run": "cypress run --spec 'tests/*' --env"
"test:run:local": "npm run test:run host=localhost"
或者,您可以在测试命令之前声明 Cypress 环境变量。
CYPRESS_HOST=localhost npm run test:run
目标:有没有一种方法或技巧可以让我将环境变量的 r 值添加为 NPM 脚本的 CLI 参数 而无需调用单独的脚本?
示例:
- 脚本:
"test:run": cypress run --spec 'tests/*' --env host=
- 用法:
npm run test:run localhost
- 预期:
cypress run --spec 'tests/*' --env host=localhost
我目前使用的是:
- 脚本:
"test:run": cypress run --spec 'tests/*' --env
- 用法:
npm run test:run host=localhost
- 结果:
cypress run --spec 'tests/*' --env host=localhost
这行得通,但我想知道是否有一种方法甚至可以省略在我的命令中添加 host=
,这样我就可以只写 r 值,localhost
为简洁起见。
我不认为你想要实现的是你想要实现的,因为 npm 如何打破 command-line 争论。传入的任何内容都作为单独的“选项”附加,而不是仅添加到现有字符串,这是您当前看到的行为 (npm run test:run localhost
=> cypress run --spec 'tests/*' --env host= localhost
).
有几个备选方案,这些似乎是您不想做的,但您可以为该行为创建一个单独的脚本。
"test:run": "cypress run --spec 'tests/*' --env"
"test:run:local": "npm run test:run host=localhost"
或者,您可以在测试命令之前声明 Cypress 环境变量。
CYPRESS_HOST=localhost npm run test:run