Bash 脚本无法执行 Cypress 的 NPM 脚本

eag*_*ntt -1 bash sh node.js npm cypress

我制作的 bash 脚本遇到了问题。对于上下文,我编写了 NPM 脚本来在命令行上运行 Cypress 测试。我的目标是拥有一个 bash 脚本来运行每个 NPM 脚本,并在命令行中执行 Cypress。另外供参考,我的 script.sh 位于项目文件夹中。

如果我从终端手动运行 NPM 脚本,就没有问题。赛普拉斯有效。这是我拥有的 NPM 脚本的示例:

"cypress:window": "./node_modules/.bin/cypress open",
Run Code Online (Sandbox Code Playgroud)

问题是当我将这些命令放入 bash 脚本中时。现在,当 script.sh 运行时,它以 code=1 执行,并且实际上根本不运行 Cypress。我的 script.sh 只是:

npm run cypress:window
Run Code Online (Sandbox Code Playgroud)

小智 5

问题很可能是 package.json 脚本中的相对路径。当您以传统方式设置 Cypress 时,它们无需在脚本中引用确切的路径,您可以这样做

// package.json
{
  "scripts": {
    "cypress:window": "cypress open",
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

请参阅如何运行所有选项的命令