ОШИБКА: не удалось загрузить 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.
Вот шаги:
загрузите 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
Приведенная выше команда загрузит все доменные, промежуточные и корневые сертификаты прокси-сервера. Объедините все сертификаты в один файл PEM.
cat domain1.crt промежуточный.crt root.crt >extra_cacert.pem
Укажите аргумент NODE_EXTRA_CA_CERTS при установке кукловода с помощью npm.
NODE_EXTRA_CA_CERTS=./extra_cacert.pem node /Users/velayutham/aws-azure-login/node_modules/puppeteer/install.js
Вышеуказанные шаги были протестированы в MacOS!!!