Відповіді:
Я вирішив цю проблему таким чином:
Я запускаю цю команду:
npm config set strict-ssl false
Потім встановіть npm для запуску з http, а не https:
npm config set registry "http://registry.npmjs.org/"
Потім я встановлюю пакети за допомогою цього синтаксису:
npm --proxy http://username:password@cacheaddress.com.br:80 install packagename
Пропустіть username:password
частину, якщо проксі не вимагає від вас автентифікації
EDIT: Мій друг просто вказав, що ви можете отримати ву роботу за проксі, встановивши ОБИДВА HTTP_PROXY і https_proxy змінних оточень, а потім видавати зазвичай команду ного встановити експрес (наприклад)
EDIT2: Як прокоментував @BStruthers, майте на увазі, що паролі, що містять "@", не будуть правильно проаналізовані, якщо містить @ поставити весь пароль у лапки
my@password
, ваш .npmrc файл повинен містити my%40password
частину пароля. Поміщення його в лапки працює в деяких випадках, але кодування - нерозумно.
Налаштування npm
проксі
Для HTTP
:
npm config set proxy http://proxy_host:port
Для HTTPS
:
використовуйте https-проксі-адресу, якщо така є
npm config set https-proxy https://proxy.company.com:8080
інакше повторно використовувати http проксі-адресу
npm config set https-proxy http://proxy.company.com:8080
Примітка : https-проксі не є https
протоколом, але http
.
Коли ви сумніваєтесь, спробуйте всі ці команди, як і я:
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
set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080
npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \
--without-ssl --insecure -g install
=======
Вставте свої налаштування ~/.bashrc
або ~/.bash_profile
так, що вам не доведеться турбуватися про свої настройки кожного разу, коли ви відкриваєте нове вікно терміналу!
Якщо ваша компанія така, як моя, мені доведеться досить часто міняти свій пароль. Тому я додав наступне у свій ~ / .bashrc або ~ / .bash_profile, щоб кожного разу, коли я відкриваю термінал, я знаю, що мої npm актуальні!
Просто вставте наступний код у нижній частині ~/.bashrc
файлу:
######################
# User Variables (Edit These!)
######################
username="myusername"
password="mypassword"
proxy="mycompany:8080"
######################
# Environement Variables
# (npm does use these variables, and they are vital to lots of applications)
######################
export HTTPS_PROXY="http://$username:$password@$proxy"
export HTTP_PROXY="http://$username:$password@$proxy"
export http_proxy="http://$username:$password@$proxy"
export https_proxy="http://$username:$password@$proxy"
export all_proxy="http://$username:$password@$proxy"
export ftp_proxy="http://$username:$password@$proxy"
export dns_proxy="http://$username:$password@$proxy"
export rsync_proxy="http://$username:$password@$proxy"
export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
######################
# npm Settings
######################
npm config set registry http://registry.npmjs.org/
npm config set proxy "http://$username:$password@$proxy"
npm config set https-proxy "http://$username:$password@$proxy"
npm config set strict-ssl false
echo "registry=http://registry.npmjs.org/" > ~/.npmrc
echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "strict-ssl=false" >> ~/.npmrc
echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
######################
# WGET SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "use_proxy = on" >> ~/.wgetrc
######################
# CURL SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
Потім відредагуйте поля "ім'я користувача", "пароль" та "проксі" в коді, який ви вставили.
Відкрийте новий термінал
Перевірте свої налаштування, запустивши npm config list
таcat ~/.npmrc
Спробуйте встановити модуль за допомогою
npm install __
, або npm --without-ssl --insecure install __
, або npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
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
для НОЙ конфігурації і потім встановлюються пакет NPM , використовуючи npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 --without-ssl --insecure -g install {packagename}
. Спасибі
Ви спробували параметри командного рядка замість .npmrc
файлу?
Я думаю, що щось на кшталт npm --proxy http://proxy-server:8080/ install {package-name}
працювало для мене.
Я також бачив таке:
npm config set proxy http://proxy-server:8080/
Хоча вже є багато корисних порад, для мого середовища (Windows 7, використовуючи PowerShell) та останньої версії, доступної node.js (v8.1.2), все вищезгадане не працювало, за винятком випадків, коли я дотримувався налаштувань brunowego .
Тому перевірте свої налаштування за допомогою:
npm config list
Налаштування проксі-сервера:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://username:password@ip:port
npm config set https-proxy http://username:password@ip:port
npm config set proxy http://username:password@ip:port
npm set strict-ssl false
Сподіваюсь, це заощадить час комусь
Це працює для мене в Windows:
npm config set proxy http://domain%5Cuser:pass@host:port
Якщо ви не маєте жодного домену, використовуйте:
npm config set proxy http://user:pass@host:port
Якщо ваш пароль містить спеціальні символи , такі як "
, @
, :
і так далі, замінити їх по URL закодованих значень. Наприклад "
-> %22
, @
-> %40
, :
-> %3A
. %5C
використовується для персонажа \
.
encodeURIComponent("YourP@ssword")
щоб отримати кодовану версію пароля.
Для налаштування проксі-сервера встановіть прапор -g :
sudo npm config set proxy http://proxy_host:port -g
Для проксі-сервера https ще раз переконайтеся, що встановлено прапор -g :
sudo npm config set https-proxy http://proxy_host:port -g
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
Це працювало для мене-
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
vim ~/.npmrc
у вашій машині Linux та додайте наступне. Не забудьте додати registry
частину, оскільки це спричиняє збій у багатьох випадках.
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
https-proxy=https://..
наhttps-proxy=http://..
Нарешті мені вдалося вирішити цю проблему, будучи проксі-сервером з аутентифікацією AD. Мені довелося виконати:
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
Дуже важливо кодувати URL будь-якими спеціальними символами, такими як зворотний кут або # У моєму випадку мені довелося кодувати
backshlash
з% 5C таким чином domain\user will
будеdomain%5Cuser
#
підпишіться з %23%0A
таким паролем, як Password#2
будеPassword%23%0A2
Я також додав такі налаштування:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Хоча я встановив проксі з конфігурацією, проблема не була вирішена, але після цього одна працювала для мене:
npm --https-proxy http://XX.AA.AA.BB:8080 встановити шнури-плагіни
npm --проксі http://XX.AA.AA.BB:8080 встановити
Я спробував усі ці варіанти, але мій проксі чомусь не мав цього. Тоді, народжений із відчаю / відчаю, я випадковим чином спробував curl
у своїй оболонці Git Bash, і це спрацювало.
Видалення всіх параметрів проксі для використання
npm config rm proxy
npm config rm https-proxy
А потім біг npm install
у моїй оболонці Git Bash працював чудово. Я не знаю, як це правильно налаштовано для проксі, і cmd
підказка Windows не працює, але це спрацювало.
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Це вирішило мою проблему.
Нарешті, зв’язавши різні відповіді, перші чотири рядки відповідей @Kayvar допомагають мені вирішити питання:
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
Це працювало для мене. Встановіть http та https проксі.
Спробуйте знайти .npmrc в C: \ Users \ .npmrc
потім відкрийте (блокнот), запишіть і збережіть всередині:
proxy=http://<username>:<pass>@<proxyhost>:<port>
PS: видаліть "<" і ">" будь ласка !!
Для мене, хоча 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 install electron --save-dev
https-proxy
, мабуть, немає https:
. Принаймні, однаковий порт для кожного, мабуть, невірно, але я думаю, що вони обоє, мабуть, мають однакове значення.
У системі Windows
Спробуйте видалити параметри проксі та реєстру (якщо вони вже встановлені) та встановіть змінні середовища в командному рядку через
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
потім спробуйте запустити npm install. Цим самим ви не встановите проксі в .npmrc, але для цього сеансу він буде працювати.
SET HTTP_PROXY http://username:password@domain:port
але переходив, SET HTTP_PROXY=http://username:password@domain:port
здавалося, щоб все
Використовуйте команду нижче в cmd або GIT Bash або іншому рядку
$ npm config set proxy " http://192.168.1.101:2128 "
$ npm набір конфігурацій https-proxy " http://192.168.1.101:2128 "
де 192.168.1.101 - проксі ip, а 4128 - порт. змінити відповідно до налаштувань проксі-сервера. це працює для мене.
Багато програм (наприклад, npm) можуть використовувати налаштування проксі від змінних середовища користувача.
Ви можете просто додати до свого середовища наступні змінні HTTP_PROXY та HTTPS_PROXY, які матимуть однакове значення для кожної
http: // user: password @ proxyAddress: proxyPort
Наприклад, якщо у вас є Windows, ви можете додати проксі, як описано нижче:
У моєму випадку я забув встановити "http: //" у своїх конфігураційних файлах (можна знайти в C: \ Users \ [USERNAME] \ .npmrc) проксі-адреси. Тож замість того, щоб мати
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
я мав
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Що, звичайно, не спрацювало, але повідомлення про помилки теж не дуже допомогло ...
На це питання вже було багато відповідей, але жоден із них не працював на мене. Усі вони згадували, щоб додати http://
префікс. Тож я і його додав. Все не вдалося.
Це нарешті працює після того, як я випадково видалив http://
префікс. Заключний конфігурація такий:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false
Я не знаю логіки за цим, але це спрацювало. Якщо жодна з наведених вище відповідей не працює для вас, можливо, ви можете спробувати на цьому шляху. Сподіваюся, що ця корисна.
На сторінці curl про SSL та питання сертифікатів є гарна інформація . Більшу частину своєї відповіді я базую на інформації, що там є.
Використання false-sll false є поганою практикою і може створювати проблеми. Що ми можемо зробити замість цього - додати сертифікат, який вводиться, сертифікатом "людина в середині".
Як вирішити це в Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
npm config set cafile **C:\Users\username\cacert.pem
npm config set strict-ssl true
Фу! Ми це зробили! Тепер npm може зрозуміти, як підключитися. Бонус у тому, що ви можете сказати curl використовувати той же cabundle.pem, і він також зрозуміє HTTP.
Ось наступні кроки (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Експортуйте сертифікат у вашу файлову систему з наступної адреси: https://registry.npmjs.org
Перейдіть до експортованого місця сертифіката та видайте таку команду:
npm config set cafile npm_certificate.cer
Додайте у файл такі зміни:
registry=https://registry.npmjs.org/
strict-ssl=false
https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/
cafile=npm_certificate.cer
Тепер ви повинні бути готові до поїздки!
Моє питання зійшло з дурною помилкою з мого боку. Оскільки я одного разу швидко перекинув проксі-файли у файл Windows * .bat (http_proxy, https_proxy та ftp_proxy), я забув уникати спеціальних символів для кодованого URL-адресом домену \ користувач (% 5C) та пароля з позначкою питання. '?' (% 3F). Тобто, щойно у вас є закодована команда, не забудьте уникнути '%' у команді bat файл.
я змінив
set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080
до
set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080
Можливо, це кращий випадок, але, сподіваємось, це комусь допомагає.
коли я даю без http / http префікса в налаштуваннях проксі, npm не вдалося, навіть якщо хост і порт проксі були правильними значеннями. Він працював лише після додавання префіксу протоколу.
Просто відкрийте новий термінал і введіть npm config edit
і npm config -g edit
. Скидання до значень за замовчуванням. Після цього закрийте термінал, відкрийте новий і введіть, npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
якщо вам потрібно просто додати -g
.
Це працювало для мене, сподіваюся, це буде працювати для вас :)