Ci 中没有安装任何版本的 Cypress(TravisCI 和 CircleCI)

No version of Cypress is installed in Ci (TravisCI and CircleCI)

我在更新到 Cypress 3.0 时在 CI 中收到此错误,说没有安装 Cypress,但我 运行 npm installcypress 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.0TravisCI,因为缓存是 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