12

我正在尝试在 ubuntu 18 中使用此命令 'sudo npm install --save-dev react-snap' 安装 react-snap 它给了我错误

ERROR: Failed to download Chromium r686378! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.

搜索后我会得到运行这个命令的解决方案

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

仍然运行此命令后,我面临此错误,我的反应版本是 16.8

    ERROR: Failed to download Chromium r686378! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! puppeteer@1.20.0 install: `node install.js`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the puppeteer@1.20.0 install script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
4

5 回答 5

13

最好的方法是导出默认环境变量 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn add puppeteer or
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install puppeteer
于 2020-04-21T13:03:01.730 回答
3

我通过使用以下命令手动安装 Chromium 来修复它:

node node_modules/puppeteer/install.js
于 2020-03-25T06:34:36.050 回答
2

尝试npm i aws-azure-login在 mac 上运行时,我在安装 puppeteer@1.20 时遇到了同样的问题sudo npm install -g puppeteer --unsafe-perm=true --allow-root。似乎 Puppeteer 并未全局安装所有用户的执行权限,因此您需要修改它们(https://libraries.io/npm/aws-azure-login)。你可以试试sudo chmod -R go+rx $(npm root -g)

通过更改 npm 默认行为以在我的主目录中安装全局包,我终于可以毫无问题地安装 aws-azure-login:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile

请参阅https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

于 2020-02-29T22:45:42.050 回答
2

PS C:\Users\myuser> $env:PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=0
PS C:\Users\myuser> npm install  puppeteer --unsafe-perm=true --allow-root 

在我当地的 windows10 工作。类似问题https://github.com/puppeteer/puppeteer/issues/2173

于 2021-10-19T19:52:41.597 回答
0

在我们的例子中,当我们尝试使用 npm install安装“aws-azure-login”时,我们的企业代理客户端尝试通过提供自己的自签名证书来检查 SSL 流量,该证书在我的本地信任库中受信任。所以我们必须使用 OpenSSL 命令下载这些 CAcert 并使用“NODE_EXTRA_CA_CERTS”参数来指定额外下载的证书路径,我们能够在我的 MacOS 上下载和安装 puppeteer。

以下是步骤:

  1. 当我们尝试连接到任何域 [storage.googleapis.com] 时,下载企业代理提供的 CAcert。

    > openssl s_client -showcerts -verify 5 -servername storage.googleapis.com -connect storage.googleapis.com:443 < /dev/null | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}' && for cert in *.crt; do newname=$(openssl x509 -noout -subject -in $cert | sed -n 's/^.*CN=\(.*\)$/\1/; s/[ ,.*]/_/g; s/__/_/g; s/^_//g;p').pem; mv $cert $newname; done
    
  2. 上述命令将下载代理的所有域、中间和根证书。将所有证书连接到一个 PEM 文件中。

    cat domain1.crt intermediate.crt root.crt >extra_cacert.pem

  3. 使用 npm 安装 puppeteer 时指定 NODE_EXTRA_CA_CERTS 参数

    NODE_EXTRA_CA_CERTS=./extra_cacert.pem 节点 /Users/velayutham/aws-azure-login/node_modules/puppeteer/install.js

以上步骤是在MacOS中测试的!!!

于 2022-01-22T03:04:26.997 回答