人偶错误:未下载Chromium版本

时间:2019-01-01 16:40:56

标签: node.js npm chromium puppeteer

我使用了Documentation中所述的profile.image = request.POST.get('imagebase64', "default value") 并且出现以下错误:

(节点:2066)UnhandledPromiseRejectionWarning:错误:未下载Chromium版本。运行“ npm install”或“ yarn install”     在Launcher.launch

当我尝试此示例时(同样来自文档):

npm i puppeteer

也在文档中:

  

注意:安装Puppeteer时,它会下载保证可以使用该API的最新版本的Chromium(〜170MB Mac,〜282MB Linux,〜280MB Win)。

任何帮助将不胜感激。

11 个答案:

答案 0 :(得分:17)

经过大量搜索并尝试了大多数建议之后,我才设法通过手动安装Chromium来解决此问题:

node node_modules/puppeteer/install.js

答案 1 :(得分:4)

就我而言,它在删除了node_modules文件夹和package-lock.json文件并再次运行npm install之后才起作用。

答案 2 :(得分:2)

默认情况下,puppeteer模块将运行其安装脚本(node install.js)。但是,就我而言,我在ignore-scripts=true文件中启用了~/.npmrc,因此从未执行。

在这种情况下,您必须自己运行命令:

node node_modules/puppeteer/install.js

要检查:node_modules/puppeteer/.local-chromium/linux-<your_chrome_version>/现在应该存在。

答案 3 :(得分:2)

经过几个小时的谷歌搜索并阅读了许多评论和讨论,尝试了多种方法后,我最终通过此解决方案解决了问题。

OS: Windows 10
node: 14.16.1
puppeteer: 7.0.1

我在 node_modules/puppeteer/ 文件夹中看到并发现没有任何 .local-chromium 文件夹所以我手动创建了这个路径

node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win

然后我从 this link (your_chrome_version) 下载了 Chrome 浏览器,然后将其复制到路径中,以便您需要在此 url 中看到 chrome.exe

node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win/chrome.exe

就是这样。它对我有用。

答案 4 :(得分:1)

经过多次尝试,我终于找到了答案here

sudo npm install puppeteer --unsafe-perm=true --allow-root

答案 5 :(得分:1)

这是因为您的系统上没有安装 Chrome。

用于安装 Chrome

sudo apt install -y chromium-browser

然后添加一个可执行路径。

const browser = await puppeteer.launch({
  executablePath: '/usr/bin/chromium-browser',
  headless: false
});

答案 6 :(得分:0)

我这样解决了

const browser = await puppeteer.launch({ executablePath: "./node_modules/puppeteer/.local-chromium/win64-656675/chrome-win/chrome.exe"});

请注意路径中的 win64-656675 ,如果您使用的是其他操作系统,则需要指向相应的文件夹。

木偶版本:1.16.0

答案 7 :(得分:0)

对于Linux:

1-您必须使用以下命令安装了Chrome浏览器:

  

$ sudo apt install -y铬浏览器

2-您必须使用以下命令获取铬的可执行路径:

  

$哪个铬浏览器

3将可执行路径作为启动函数的参数:

   const puppeteer = require('puppeteer-core');
   (async () => {
   const browser = await puppeteer.launch({
   executablePath: '/usr/bin/chromium-browser',
   headless: false
    });
    const page = await browser.newPage();
    await page.goto('https://google.com');
    await page.screenshot({path: 'example.png'});

    await browser.close();
    })();

答案 8 :(得分:0)

确认此处介绍的解决方案几乎可行。这是我的设置。 Ubuntu 16。

从命令行安装chrimium浏览器。然后:

    const browser = await puppeteer.launch({
        executablePath: "/usr/bin/chromium-browser",
        args: ['--no-sandbox']
    });

答案 9 :(得分:0)

如果仍然有人再次遇到此问题。然后转到node_modules文件夹,然后进入puppeteer并在lib中找到启动文件。打开同一个文件并搜索可执行路径,然后将其空值更改为chrome或所需的chrome路径。

对我来说,路径如下:

/home/Nightwing/node_modules/puppeteer/Launcher.js

答案 10 :(得分:-2)

就我而言,我只是忘记了更新后重新加载应用程序