Why do I need to "reinstall" Puppeteer by running `node install.js` after `npm install`? (Error: Chromium revision is not downloaded.)
Why do I need to "reinstall" Puppeteer by running `node install.js` after `npm install`? (Error: Chromium revision is not downloaded.)
否则,当我尝试使用 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
但这不起作用,我收到了修订错误。
我在 Puppeteer 的目录 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"
},
以下是可能解决此问题的一些步骤,
- 尝试使用
puppeteer
作为 dependency 而不是 devDependency.
- 删除任何锁定文件,如
yarn.lock
和 package-lock.json
- 强制清理 npm 缓存
npm cache clean --force
- 清理纱线缓存(如果安装了纱线)
yarn cache clean
- 现在所有缓存数据都消失了,您可以放心地再次 运行
npm install
。
- 如果这会产生您之前遇到的相同错误,请尝试使用
yarn
。
- 如果这不能修复错误,请尝试使用
yarn add puppeteer@1.13.0
而不是 ^
. 安装精确的 puppeteer 版本
您不必进入 node_modules
文件夹,也不必一直按照上述步骤操作,只是缓存可能在某处损坏。
不幸的是,另一个模块的 package.json
已将 puppeteer_chromium_revision
添加到我的 .npmrc
并且有效地对 Puppeteer 的修订进行了硬编码。
以下步骤对我有用:
- 删除了锁定文件(如 yarn.lock 和 package-lock.json)
- 强制清理 npm 缓存(npm 缓存清理 --force / yarn 缓存清理)
- 运行 npm 安装
我只能通过在命令行中使用以下命令手动安装 Chromium 来解决上述问题
node node_modules/puppeteer/install.js
否则,当我尝试使用 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
但这不起作用,我收到了修订错误。
我在 Puppeteer 的目录 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"
},
以下是可能解决此问题的一些步骤,
- 尝试使用
puppeteer
作为 dependency 而不是 devDependency. - 删除任何锁定文件,如
yarn.lock
和package-lock.json
- 强制清理 npm 缓存
npm cache clean --force
- 清理纱线缓存(如果安装了纱线)
yarn cache clean
- 现在所有缓存数据都消失了,您可以放心地再次 运行
npm install
。 - 如果这会产生您之前遇到的相同错误,请尝试使用
yarn
。 - 如果这不能修复错误,请尝试使用
yarn add puppeteer@1.13.0
而不是^
. 安装精确的 puppeteer 版本
您不必进入 node_modules
文件夹,也不必一直按照上述步骤操作,只是缓存可能在某处损坏。
不幸的是,另一个模块的 package.json
已将 puppeteer_chromium_revision
添加到我的 .npmrc
并且有效地对 Puppeteer 的修订进行了硬编码。
以下步骤对我有用:
- 删除了锁定文件(如 yarn.lock 和 package-lock.json)
- 强制清理 npm 缓存(npm 缓存清理 --force / yarn 缓存清理)
- 运行 npm 安装
我只能通过在命令行中使用以下命令手动安装 Chromium 来解决上述问题
node node_modules/puppeteer/install.js