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

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

Казалось бы, что npm i с Puppeteer в моем депе было бы достаточно, но после завершения установки мне нужно 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 в Duppeteer DIR, я вижу

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"
    },

5 ответов

Решение

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

Мне удалось исправить указанную выше проблему, только вручную установив Chromium с помощью приведенной ниже команды в командной строке.

node node_modules/puppeteer/install.js

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

  • Попробуйте использовать 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 папку, и вам не нужно все время выполнять вышеуказанные шаги, просто кэш может где-то сломаться.

Я устанавливал puppeteer на сервер Ubuntu и использовалnpm installне работал. Я установил Yarn и использовал его вместо этого. Это сработало.

Для меня сработали следующие шаги:

  • Удален файл блокировки (например, yarn.lock и package-lock.json)
  • Принудительно очищен кеш npm (очистка кеша npm --force / yarn cache clean)
  • Запуск npm install
Другие вопросы по тегам