Ci 中没有安装任何版本的 Cypress(TravisCI 和 CircleCI)
No version of Cypress is installed in Ci (TravisCI and CircleCI)
我在更新到 Cypress 3.0
时在 CI 中收到此错误,说没有安装 Cypress,但我 运行 npm install
在 cypress run
命令。错误:
No version of Cypress is installed in:
/home/ubuntu/.cache/Cypress/3.0.1/Cypress
Please reinstall Cypress by running: cypress install
----------
为什么 Cypress 找不到 Cypress 可执行文件?
这是我的 circle.yml
:
build:
<<: *defaults
steps:
- checkout
- restore_cache:
keys:
- v1-npm-deps
- run: npm install
- save_cache:
key: v1-npm-deps-{{ checksum "package.json" }}
paths:
- node_modules
- ~/.cache
- ~/.npm
- run: npm test
- run: npm run build
- persist_to_workspace:
root: /tmp/workspace
paths:
- .circleci/deploy.sh
- .circleci/e2e-test.sh
- package.json
- cypress.json
- node_modules/
- build/*
- cypress/*
这是缓存 node_modules
的一个小问题 - 安装 Cypress 二进制文件的 post-install 脚本不会 运行 因为 node_modules/cypress
存在。
要解决此问题,您可以刷新 CI 构建 的缓存,一切都应该解决。
这就是为什么我建议使用 npm ci
,因为每次命令 运行
时 node_modules
都会被擦除
还有:
- 在 Circle CI 2.0 中,缓存的工作方式不同于 1.0
或 TravisCI
,因为缓存是 immutable。您只能创建另一个缓存,永远不能销毁和重写缓存。所以,你应该像这样进行缓存:
- restore_cache:
keys:
- v1-deps-{ .Branch }-{ checksum "package.json" }
- v1-deps-{ .Branch }
- v1-deps
- run:
- npm ci
- save_cache:
key: v1-deps-{ .Branch }-{ checksum "package.json" }
paths:
- ~/.cache
- ~/.npm
我在更新到 Cypress 3.0
时在 CI 中收到此错误,说没有安装 Cypress,但我 运行 npm install
在 cypress run
命令。错误:
No version of Cypress is installed in:
/home/ubuntu/.cache/Cypress/3.0.1/Cypress
Please reinstall Cypress by running: cypress install
----------
为什么 Cypress 找不到 Cypress 可执行文件?
这是我的 circle.yml
:
build:
<<: *defaults
steps:
- checkout
- restore_cache:
keys:
- v1-npm-deps
- run: npm install
- save_cache:
key: v1-npm-deps-{{ checksum "package.json" }}
paths:
- node_modules
- ~/.cache
- ~/.npm
- run: npm test
- run: npm run build
- persist_to_workspace:
root: /tmp/workspace
paths:
- .circleci/deploy.sh
- .circleci/e2e-test.sh
- package.json
- cypress.json
- node_modules/
- build/*
- cypress/*
这是缓存 node_modules
的一个小问题 - 安装 Cypress 二进制文件的 post-install 脚本不会 运行 因为 node_modules/cypress
存在。
要解决此问题,您可以刷新 CI 构建 的缓存,一切都应该解决。
这就是为什么我建议使用 npm ci
,因为每次命令 运行
node_modules
都会被擦除
还有:
- 在 Circle CI 2.0 中,缓存的工作方式不同于 1.0
或 TravisCI
,因为缓存是 immutable。您只能创建另一个缓存,永远不能销毁和重写缓存。所以,你应该像这样进行缓存:
- restore_cache:
keys:
- v1-deps-{ .Branch }-{ checksum "package.json" }
- v1-deps-{ .Branch }
- v1-deps
- run:
- npm ci
- save_cache:
key: v1-deps-{ .Branch }-{ checksum "package.json" }
paths:
- ~/.cache
- ~/.npm