ОШИБКА: не удалось загрузить Chromium r686378! Установите переменную env "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD", чтобы пропустить загрузку

Я пытаюсь установить response-snap, используя эту команду sudo npm install --save-dev response-snap в ubuntu 18, это дает мне ошибку

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.

6 ответов

Лучший способ - экспортировать env по умолчанию var PUPPETEER_SKIP_CHROMIUM_DOWNLOAD

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn add puppeteer or
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install puppeteer

Я исправил это, установив Chromium вручную с помощью этой команды:

node node_modules/puppeteer/install.js

У меня была такая же проблема с установкой puppeteer@1.20 при попытке запустить npm i aws-azure-login на Mac, после выполнения 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)

Наконец-то я получил aws-azure-login для установки без каких-либо проблем, изменив поведение npm по умолчанию для установки глобальных пакетов в мой домашний каталог:

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

работает на моем локальном windows10. похожие проблемы https://github.com/puppeteer/puppeteer/issues/2173

Если вы используете Docker, добавьте это в свойdockerfile:

      
# Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true

# Install Puppeteer @latest version.
RUN npm i puppeteer@latest

В нашем случае, когда мы пытаемся установить «aws-azure-login» с помощью установки npm, наш корпоративный прокси -клиент пытается проверить трафик SSL, представляя свой собственный самозаверяющий сертификат, которому доверяют в моем локальном хранилище доверенных сертификатов. Таким образом, мы должны загрузить этот CAcert с помощью команд OpenSSL и с помощью аргумента «NODE_EXTRA_CA_CERTS», чтобы указать путь к дополнительному загруженному сертификату, мы смогли загрузить и установить кукловод на моем MacOS.

Вот шаги:

  1. загрузите CAcert, который представляет корпоративный прокси-сервер, когда мы пытаемся подключиться к любому домену [storage.googleapis.com].

            > 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 промежуточный.crt root.crt >extra_cacert.pem

  3. Укажите аргумент NODE_EXTRA_CA_CERTS при установке кукловода с помощью npm.

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

Вышеуказанные шаги были протестированы в MacOS!!!

Другие вопросы по тегам