Node.js 木偶演员错误:未下载Chromium修订版
我使用了npm I木偶演员,如 我得到了以下错误: (节点:2066)未处理的PromisejectionWarning:错误:未下载Chromium版本。运行“npm安装”或“纱线安装” 在启动器处。启动 当我尝试这个例子时(也来自文档): 文件中还包括: 注意:安装Puppeter时,它会下载Chromium的最新版本(~170MB Mac、~282MB Linux、~280MB Win),该版本保证与API一起使用Node.js 木偶演员错误:未下载Chromium修订版,node.js,npm,chromium,puppeteer,Node.js,Npm,Chromium,Puppeteer,我使用了npm I木偶演员,如 我得到了以下错误: (节点:2066)未处理的PromisejectionWarning:错误:未下载Chromium版本。运行“npm安装”或“纱线安装” 在启动器处。启动 当我尝试这个例子时(也来自文档): 文件中还包括: 注意:安装Puppeter时,它会下载Chromium的最新版本(~170MB Mac、~282MB Linux、~280MB Win),该版本保证与API一起使用 任何帮助都将不胜感激。经过多次尝试,我终于找到了答案: 正如@vsync所
任何帮助都将不胜感激。经过多次尝试,我终于找到了答案:
正如@vsync所指出的,这只适用于linux,我是这样解决的:
const browser=wait puppeter.launch({executablePath:“./node_modules/puppeter/.local chromium/win64-656675/chrome win/chrome.exe”})代码>
请注意路径中的win64-656675,如果您在不同的操作系统上,则需要指向相应的文件夹
适用于linux的木偶演员版本:1.16.0
1-必须使用以下命令安装chromium浏览器:
$sudo apt安装-y chromium浏览器
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();
})();
确认这里提出的解决方案几乎是可行的。这是我的设置。Ubuntu 16
从命令行安装chromium浏览器,然后:
const browser = await puppeteer.launch({
executablePath: "/usr/bin/chromium-browser",
args: ['--no-sandbox']
});
如果有人再次面临这个问题。然后转到node_modules文件夹,然后进入puppeter和lib,在其中找到launch.js打开同一个文件并搜索executablepath,然后将其空值更改为chrome或chrome所需的路径
对我来说,路径如下:
/home/Nightwing/node_模块/puppeter/Launcher.js
在我的例子中,删除node_modules文件夹和package-lock.json文件并再次运行npm install后,它就起作用了。我只是在进行了大量搜索并尝试了大多数建议后,通过手动安装Chromium来解决问题:
node node_modules/puppeteer/install.js
默认情况下,puppeter
模块将运行其安装脚本(node install.js
)。然而,在我的例子中,我在我的~/.npmrc
文件中启用了ignorescripts=true
,因此它从未执行过
在这种情况下,您必须自己运行命令:
node node_modules/puppeteer/install.js
要检查:node\u modules/puppeter/.local chromium/linux-/
现在应该存在。这是因为您的系统上没有安装Chrome
用于安装铬合金
sudo apt install -y chromium-browser
然后,添加一个可执行路径
const browser = await puppeteer.launch({
executablePath: '/usr/bin/chromium-browser',
headless: false
});
在谷歌上搜索了几个小时,阅读了许多评论和讨论,尝试了几种方法,最后我用这个解决方案解决了问题
OS: Windows 10
node: 14.16.1
puppeteer: 7.0.1
我在节点\u modules/puppeter/
文件夹中看到,发现没有任何.local chromium
文件夹,因此我手动创建了此路径
node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win
node\u模块/puppeter/.local chromium/win64-/chrome-win
然后我从(你的chrome版本)下载了chrome浏览器,并将其复制到路径中,以便你需要在这个url中看到chrome.exe
node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win/chrome.exe
node\u modules/puppeter/.local chrome/win64-/chrome win/chrome.exe
就这样。这对我来说很管用。这个答案是专门针对linux的,这使得它对许多开发人员来说毫无用处,因为windows操作系统仍然占据主导地位,但ubuntu bash for windows将使它成为主流usefull@tramada仍然是Linux;)npm v7不再有--unsafe perm
或同等产品,这非常有用。读了这篇文章,终于有了一些进步!很多。你救了我一天。这个解决方案解决了我的问题。谢谢我的本地模块使用了puppeter核心
而不是puppeter
,但解决方案的工作原理是相同的。如果文件夹存在,您可以检查路径和文件,或者您可以重命名它并执行步骤。谢谢!你真的救了我的命!!!!!
node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win
node_modules/puppeteer/.local-chromium/win64-<your_chrome_version>/chrome-win/chrome.exe