Почему мне нужно "переустановить" 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