Есть ли способ заставить npm install (команду) работать за прокси? - PullRequest
236 голосов
/ 26 сентября 2011

Прочитайте о прокси-переменной в файле .npmrc, но она не работает. Попытка избежать ручной загрузки всех требуемых пакетов и установки.

Ответы [ 27 ]

6 голосов
/ 28 августа 2017
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/

Это решило мою проблему.

6 голосов
/ 02 июня 2016

Я перепробовал все эти варианты, но у моего прокси-сервера по какой-то причине его не было. Затем, родившись из отчаяния / отчаяния, я случайно попробовал curl в своей оболочке Git Bash, и это сработало.

Сброс всех параметров прокси с помощью

npm config rm proxy
npm config rm https-proxy

И затем запуск npm install в моей оболочке Git Bash работал отлично. Я не знаю, как он настроен правильно для прокси-сервера, а приглашение Windows cmd - нет, но это сработало.

6 голосов
/ 14 ноября 2014

Хотя я установил прокси с помощью конфигурации, проблема не была решена, но после Этот работал для меня:

npm --https-proxy http://XX.AA.AA.BB:8080 установка Cordova-Plugins

npm --proxy http://XX.AA.AA.BB:8080 установить

5 голосов
/ 09 сентября 2016

Для меня, хотя python и т. Д. Все будут работать, хотя наш корпоративный прокси-сервер npm не будет.

Я попытался

npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/

, как указано, но продолжал получать то жеошибка.

Только когда я удалил https-proxy https://proxyccc.xxx.ca:8080 из файла .npmrc, что npm установил электрон --save-dev работало

5 голосов
/ 15 февраля 2016

Это сработало для меня.Установите http и https прокси.

5 голосов
/ 20 июля 2016

Попробуйте найти .npmrc в C: \ Users \ .npmrc

, затем откройте (блокнот), напишите и сохраните внутри:

proxy=http://<username>:<pass>@<proxyhost>:<port>

PS: удалите "<" и">" пожалуйста !!

5 голосов
/ 01 ноября 2018

Наконец-то мне удалось решить эту проблему, используя прокси-сервер behinde с аутентификацией AD. Я должен был выполнить:

npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/

Очень важно, чтобы URL кодировал любые специальные символы, такие как backshlash или # В моем случае мне пришлось кодировать

  1. backshlash с% 5C, поэтому domain\user will be domain%5Cuser
  2. # подписать %23%0A, поэтому пароль, такой как Password#2 будет Password%23%0A2

Я также добавил следующие настройки:

npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
5 голосов
/ 06 декабря 2017

После окончательного связывания разных ответов, первые четыре строки @Kayvar answers помогают мне решить проблему:

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false
4 голосов
/ 19 июля 2016

Используйте приведенную ниже команду в cmd или GIT Bash или в другом приглашении

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

, где 192.168.1.101 - IP-адрес прокси, а 4128 - порт. изменить в соответствии с настройками прокси. это работает для меня.

3 голосов
/ 07 марта 2018

На странице curl есть хорошая информация о SSL и проблемах с сертификатами .Я основываю большую часть своего ответа на имеющейся там информации.

Использование строгого ssl false - плохая практика и может создавать проблемы.Вместо этого мы можем добавить сертификат, который вводится сертификатом «человек посередине».

Как решить эту проблему в Windows:

  1. Загрузите сертификаты CA из curl на основе пакета CA Mozilla.Вы также можете использовать оболочку curl "firefox-db2pem.sh" для преобразования вашей локальной базы данных Firefox.
  2. Перейти на веб-страницу с помощью https, например Stackoverflow в Chrome или Internet Explorer
  3. Щелкните значок блокировки, нажмите «Просмотреть сертификаты» или «Действительный» в Chrome
  4. Перейдите к пути сертификации.Верхний сертификат или корневой сертификат - это тот, который мы хотим извлечь.Нажмите на этот сертификат, а затем «просмотреть сертификат»
  5. Нажмите на вторую вкладку «Сведения».Нажмите «Копировать в файл».Выберите формат DER и запишите, где вы сохранили файл.Выберите подходящее имя файла, например rootcert.cer
  6. Если у вас установлен Git, у вас будет openssl.exe.В противном случае установите git для windows на этом этапе.Скорее всего, исполняемый файл openssl будет находиться в C: \ Program Files \ git \ usr \ bin \ openssl.exe.Мы будем использовать openssl для преобразования файла в формат PEM, необходимый для понимания NPM.
  7. Преобразование файла, сохраненного на шаге 5, с помощью этой команды:
    openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
    , где rootcert - это имя файла сертификата, сохраненного на шаге 5.
  8. Откройте файл outcert.pem в текстовом редакторе, который достаточно умен, чтобы понимать окончания строк, поэтому не блокнот.Выделите весь текст и скопируйте его в буфер обмена.
  9. Теперь мы вставим это содержимое в конец пакета CA Cert, созданного на шаге 1. Так что откройте cacert.pem в вашем расширенномТекстовый редактор.Перейти к концу файла и вставить содержимое из предыдущего шага в конец файла.(Сохраните пустую строку под тем, что вы только что вставили)
  10. Скопируйте сохраненный файл cabundle.pem в подходящее место.Например, ваш% userprofile% или ~.Запишите местоположение файла.
  11. Теперь мы сообщим npm / yarn использовать новый пакет.В командной строке введите
    npm config set cafile **C:\Users\username\cacert.pem
    , где C: \ Users \ username \ cacert.pem - это путь из шага 10.
  12. Дополнительно: включите строгийСнова, npm config set strict-ssl true

Фу!Мы сделали это!Теперь npm может понять, как подключиться.Бонус в том, что вы можете указать curl использовать тот же cabundle.pem, и он также будет понимать HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...