Почему мне нужно "переустановить" Puppeteer, запустив `node install.js` после` npm install`? (Ошибка: версия Chromium не загружается.) - PullRequest
1 голос
/ 19 марта 2019

В противном случае, когда я пытаюсь запустить тесты с помощью Puppeteer, я получаю Error: Chromium revision is not downloaded. Run "npm install" or "yarn install"

. Казалось бы, npm i с Puppeteer в моих deps будет достаточно, но после завершения установки мне нужно cd в /node_modules/puppeteer, затем запустите node install.js, чтобы получить правильную загруженную ревизию.

Когда я делаю начальную npm i, я вижу

> puppeteer@1.13.0 install /Users/.../node_modules/puppeteer
> node install.js

Downloading Chromium r549031 - 76 Mb [====================] 100% 0.0s
Chromium downloaded to /Users/.../node_modules/puppeteer/.local-chromium/mac-549031

Но это не работает, и яполучить ошибку ревизии.

После того, как я node install.js в рубрике Кукловода, я вижу

Downloading Chromium r637110 - 85.9 Mb [====================] 100% 0.0s
Chromium downloaded to /Users/.../node_modules/puppeteer/.local-chromium/mac-637110

, тогда я готов идти.

Есть идеи, почему?Это на macOS & Node 10.15, и я предполагаю, что это будет труднее сделать в CI.

Я искал и нашел других людей с этой проблемой, но нет надежных способов обойти это.

package.json

    "devDependencies": {
        "@babel/core": "^7.3.3",
        "@babel/preset-env": "^7.3.1",
        "babel-jest": "^24.1.0",
        "babel-loader": "^8.0.5",
        "eslint": "^5.14.1",
        "html-webpack-plugin": "^3.2.0",
        "husky": "1.1.2",
        "jest": "^24.1.0",
        "jest-puppeteer": "^4.1.0",
        "lint-staged": "7.3.0",
        "prettier-eslint-cli": "4.7.1",
        "puppeteer": "^1.13.0",
        "webpack": "^4.29.5",
        "webpack-bundle-analyzer": "^3.1.0",
        "webpack-cli": "^3.2.3",
        "webpack-dev-server": "^3.2.1",
        "webpack-shell-plugin": "^0.5.0"
    },

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вот некоторые шаги, чтобы потенциально решить эту проблему,

  • Попробуйте использовать puppeteer как зависимость вместо devDependency .
  • удалить любой файл блокировки, например yarn.lock и package-lock.json
  • принудительно очистить кэш npm npm cache clean --force
  • очистить кэш пряжи (если пряжа установлена) yarn cache clean
  • Теперь, когда все кэшированные данные исчезли, вы можете снова запустить npm install.
  • Если это приводит к той же ошибке, с которой вы сталкивались ранее, попробуйте использовать yarn.
  • Если это не исправляет ошибку, попробуйте установить точную версию кукловода с yarn add puppeteer@1.13.0 вместо ^.

Вам не нужно заходить в папку node_modules, и вам не нужно все время выполнять вышеописанные шаги, просто кэш может где-то сломаться.

0 голосов
/ 21 марта 2019

К сожалению, package.json другого модуля добавил puppeteer_chromium_revision к моему .npmrc и фактически жестко запрограммировал ревизию для Puppeteer.

...