d-_*_*_-b 5 node.js npm puppeteer
我无法puppeteer作为项目依赖项安装,我尝试重新安装节点.任何人都知道如何解决这个问题?运行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;
Run Code Online (Sandbox Code Playgroud)
节点版本:
$ node -v
v9.4.0
$ npm -v
5.6.0
Run Code Online (Sandbox Code Playgroud)
我尝试安装:
root@server:/var/www/html# npm install --save puppeteer
Run Code Online (Sandbox Code Playgroud)
错误信息:
> 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
Run Code Online (Sandbox Code Playgroud)
我在引用的问题中没有看到任何解决方法:https://github.com/GoogleChrome/puppeteer/issues/375
编辑2019年4月20日:
lauraalvarezz1建议的简单解决方案是,
sudo npm install -g puppeteer --unsafe-perm=true
Run Code Online (Sandbox Code Playgroud)
只要您信任puppeteer并希望它全局安装puppeteer,就可以。
但是,请注意使用--unsafe-perm=true与权限相关的问题。原因如下:
--no-sandbox在运行的每个脚本中使用,因为没有此参数可能无法运行通过此命令安装的Chrome。请参阅此github问题。您已使用安装了npm sudo。因此,您在全局安装的所有内容都将需要sudo。
要在var/www/html文件夹上安装任何内容,您必须拥有该文件夹,
sudo chown -R $USER /var/www/html
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用nvm来管理npm。从技术上讲,它将使用您的主目录和当前用户。
安装nvm之后,您可以与其一起全局安装puppeteer,
npm i -g puppeteer
Run Code Online (Sandbox Code Playgroud)
否则你必须使用sudo
sudo npm install --save puppeteer
Run Code Online (Sandbox Code Playgroud)
但是,由于权限错误,不会下载Chrome,这就是为什么您必须如上所述使用---unsafe-perm=true。
安全相关资源:
祝你好运!
| 归档时间: |
|
| 查看次数: |
4732 次 |
| 最近记录: |