为什么需要在“ npm install”之后运行“ node install.js”来“重新安装” Puppeteer? (错误:未下载Chromium版本。)

时间:2019-03-19 16:48:45

标签: chromium puppeteer jest-puppeteer

否则,当我尝试使用Puppeteer运行测试时,我得到Error: Chromium revision is not downloaded. Run "npm install" or "yarn install"

看来npm i就足够了,但安装完成后,我需要将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在Puppeteer的目录中后,看到了

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

4 个答案:

答案 0 :(得分:1)

以下是一些可能解决此问题的步骤,

  • 尝试将puppeteer用作依赖性,而不是 devDependency
  • 删除所有锁定文件,例如yarn.lockpackage-lock.json
  • 强行清理npm缓存npm cache clean --force
  • 干净的纱线缓存(如果已安装纱线)yarn cache clean
  • 现在所有缓存的数据都消失了,您可以随意再次运行npm install
  • 如果这产生了您之前遇到的相同错误,请尝试使用yarn
  • 如果仍不能解决该错误,请尝试使用yarn add puppeteer@1.13.0而不是^安装准确的人偶版本。

您不必进入node_modules文件夹,也不必一直执行上述步骤,只是缓存可能在某处被破坏了。

答案 1 :(得分:0)

不幸的是,另一个模块的package.json已将puppeteer_chromium_revision添加到我的.npmrc中,并有效地对Puppeteer的修订进行了硬编码。

答案 2 :(得分:0)

以下步骤对我有用:

  • 删除了锁定文件(例如yarn.lock和package-lock.json)
  • 强制清洁npm缓存(npm缓存清理--force /纱线缓存清理)
  • Ran npm install

答案 3 :(得分:0)

我只能通过在命令行上使用以下命令手动安装Chromium来解决上述问题

node node_modules/puppeteer/install.js