Відповіді:
Я вирішив цю проблему таким чином:
Я запускаю цю команду:
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 __.-gnpm 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 -textnpm config set cafile **C:\Users\username\cacert.pemnpm 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.
Це працювало для мене, сподіваюся, це буде працювати для вас :)