我无法将< code > puppet er 作为项目依赖项安装,我已尝试重新安装node。有人知道如何解决这个问题吗?运行Ubuntu 17.10 x64
sudo apt-get purge nodejs;
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -;
apt-get install -y nodejs;
sudo npm install -g n;
sudo n stable;
节点版本:
$ node -v
v9.4.0
$ npm -v
5.6.0
我尝试安装:
root@server:/var/www/html# npm install --save puppeteer
错误消息:
> puppeteer@1.1.0 install /var/www/html/node_modules/puppeteer
> node install.js
ERROR: Failed to download Chromium r536395! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: EACCES: permission denied, mkdir '/var/www/html/node_modules/puppeteer/.local-chromium'
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/var/www/html/node_modules/puppeteer/.local-chromium' }
npm WARN project@1.0.0 No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@1.1.0 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puppeteer@1.1.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-02-19T15_55_52_669Z-debug.log
我在引用的问题中看不到任何解决此问题的方法:https://github.com/GoogleChrome/puppeteer/issues/375
编辑20th 四月2019:
lauraalvarezz1建议的简单解决方案是,
sudo npm install -g puppeteer --unsafe-perm=true
只要你信任木偶师并希望它在全球范围内安装木偶师,这是可以的。
但是,对于与权限相关的问题,请注意使用--unsafe perm=true
。原因如下:
no-sandbox
,因为使用此命令安装的 chrome 可能无法在没有此参数的情况下运行。请参阅此 github 问题。您已经使用sudo
安装了npm。因此,您在全球范围内安装的任何东西都需要sudo
。
要在< code>var/www/html文件夹上安装任何东西,要么您必须拥有该文件夹,
sudo chown -R $USER /var/www/html
或者你可以使用 nvm 来管理 npm。从技术上讲,它将使用您的主目录和当前用户。
安装nvm后,可以用它全局安装木偶师,
npm i -g puppeteer
或者你必须使用sudo
sudo npm install --save puppeteer
然而,由于权限错误,chroium不会下载,这就是为什么您必须使用---unsece-perm=true
如前所述。
安全相关资源:
祝你好运!
在您的终端上运行以下命令:
sudo npm install -g puppeteer --unsafe-perm=true
开始之前,请确保您有最新版本的Node.js。
木偶文件说明:
注意:Puppeteer至少需要Node v6.4.0,但下面的示例使用仅在Node v7.6.0或更高版本中支持的async/wait。
您可以使用以下命令检查您拥有的 Node 版本.js:
node -v
# OR nodejs -v
如果您的Node.js版本低于v7.6.0,您可以完全卸载当前版本的Node.js.
然后,您可以使用PPA完成重新安装:
sudo apt update
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
sudo apt install build-essential
您可以检查系统上安装的Node.js和NPM的新版本:
node -v
npm -v
最后,您可以安装Puppeteer:
sudo npm install puppeteer --unsafe-perm=true --allow-root
现在,您可以使用< code>node命令运行Puppeteer脚本:
node puppeteer-script.js