Виклики Bower заблоковані корпоративним проксі


77

Я намагаюся використовувати Bower для веб-програми, але виявляю, що стикаюся з деякими проблемами проксі:

D:\>bower search jquery
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 1.2s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 2.5s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 6.8s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 15.1s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 20.3s
bower ECONNRESET    Request to https://bower.herokuapp.com/packages/search/jquery failed: tunneling socket could not be established, cause=Parse Error

Відповідні пункти:

  • Я можу перейти до https://bower.herokuapp.com/packages/search/jquery, і він повертає повну відповідь json.
  • Я можу використовувати git для клонування, як за допомогою протоколу git: //, так і http (s).
  • Я можу використовувати NPM безпосередньо без цих проблем
  • Я намагався використовувати Fiddler, щоб визначити, що заблоковано, але він не виявляє жодних викликів від команди Bower. Я бачу дзвінки від команд NPM у Fiddler.
  • Я шукав у списку проблем Bower, бачив подібні проблеми, але вони або не мають рішення, або це, схоже, не так, як у мене.

Будь-які ідеї?

Відповіді:


164

Дякую @ user3259967

Це зробило роботу.

Я хотів би додати, що якщо ви стоїте за проксі-сервером, який потребує автентифікації, ви можете додати ім’я користувача / пароль у свій файл .bowerrc .

{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

Зверніть увагу на використання http: // у https-proxy


1
Я міг знайти файл .bowerrc. Він уже присутній або ми повинні додати його до розчину.?
AnandhaSundari M

Вам потрібно буде створити його вручну, а потім додати вищевказані рядки. Переконайтесь, що ви дотримуєтесь стандартів JSON належним чином.
Sohail

@Sohail Останнє "," викликає помилку. Не могли б ви його видалити?
edubriguenti

12
Зверніть увагу на використання http: // у https-proxy <<<< ЦЕ надзвичайно цінна інформація. це зробило трюк для мене
Denny1989

ім'я користувача та пароль, що це?
Хоссейн Ганджяр

37

Рішенням для мене є така конфігурація .bowerrc

{
  "directory": "vendor",
  "registry": "http://bower.herokuapp.com",
  "proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "https-proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "strict-ssl": false
}

Використання протоколу http у https-proxy плюс запис реєстру з протоколом http.

Не забудьте змінити номер порту 8080 на будь-який ваш порт проксі-сервера.


19

Ви за проксі?

Ви налаштували змінні середовища HTTP_PROXY та HTTPS_PROXY?

SET HTTP_PROXY=http://yourproxyserver:yourproxyport
SET HTTPS_PROXY=http://yourproxyserver:yourproxyport

Дякую. Моя проблема полягала в тому, що я мав https у налаштуваннях HTTPS_PROXY.
Brian F

@JamesClevenger - Це рішення взагалі не працювало, коли я його спробував, все одно отримали ті самі помилки.
dcp

Налаштування змінних середовища спрацювало. Bower зміг трохи більше попрацювати, відредагувавши файл .bowerrc, але фактично не зміг нічого завантажити.
Daniel N

12

Спробуйте змінити значення реєстру у своєму .bowerrc:

{
    "registry": "http://bower.herokuapp.com"
}

2
Я отримую помилку про те, що сайт не знайдено ... Інформаційний буклет Bower ENOTFOUND Запит до bower.herokuapp.com/packages/leaflet не вдався: getaddrinfo ENOTFOUND
Dr.YSG

Цього мені було достатньо
сабсаб

9

У мене не було файлу .bowerrc, щоб налаштувати мої налаштування bower. Я знайшов налаштування, що живуть у файлі defaults.js . знайдено в розділі "C: \ ... \ bower \ node_modules \ bower-config \ lib \ util \ defaults.js ".
Сподіваюсь, це допомагає іншим:

var defaults = {
    'cwd': process.cwd(),
    'directory': 'bower_components',
    'registry': 'http://bower.herokuapp.com',
    'shorthand-resolver': 'git://github.com/{{owner}}/{{package}}.git',
    'tmp': paths.tmp,
    'proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'https-proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'timeout': 30000,
    'ca': { search: [] },
    'strict-ssl': false,
    'user-agent': userAgent,
    'color': true,
    'interactive': null,
    'storage': {
        packages: path.join(paths.cache, 'packages'),
        links: path.join(paths.data, 'links'),
        completion: path.join(paths.data, 'completion'),
        registry: path.join(paths.cache, 'registry'),
        empty: path.join(paths.data, 'empty')  // Empty dir, used in GIT_TEMPLATE_DIR among others
    }
};

module.exports = defaults;


3
ви могли просто створити файл .bowerrc
Мукус

7

Ви можете спробувати запропонувати @thebignet для того ж випуску на GitHub

Set proxy, https-proxyі strict-sslконфігурації в .bowerrcфайл:

{
  "proxy"       : "http://<host>:<port>",
  "https-proxy" : "http://<host>:<port>",
  "strict-ssl"  : false
} 

Але ви повинні запустити Command з терміналу:

git config --global url."https://".insteadOf git://

2
+1 це спрацювало для мене. Не потрібно автентифікуватися. Просто скопіював мої налаштування проксі з npm. Якщо вам потрібно з’ясувати, для чого вони використовуються, npm get proxyі npm get https-proxyякщо у вас ще немає файлу .bowerrc, просто створіть його
fidev

так, ваше рішення з використанням npmможливо, але моє рішення з використанням .bowerrcфайлу для зміни proxyналаштувань лише у вашому поточному проекті
Ahmed Hamdy


4

Для Win 7 .

Те, що мені вдалося , наведено нижче, як запропоновано за цим посиланням - прочитайте відповідь #nanowizard.

  1. У .bowerrcфайлі видаліть усі налаштування http_proxy / https_proxy, які ви могли робити раніше. Це важливо. Тож остаточний вміст цього файлу повинен виглядати так: -

    {
      "directory": "app/bower_components" 
    }
    
  2. Встановіть змінні середовища у своєму ПК - http_proxyі https_proxyдля проксі-сервера корпоративного брандмауера. Якщо ваш корпоративний проксі вимагає автентифікації, і якщо ваш пароль містить спеціальні символи, перетворіть його у шістнадцяткову форму, як пропонується за цим посиланням. Як і в моєму випадку, втеча символів з '\' не допомогло. Також мені довелося перезапустити систему.

Примітка: http_proxy та https_proxy повинні містити ту саму адресу проксі, як показано нижче

http_proxy = http://<user>:<password>@<your company proxy>:<port>
https_proxy= http://<user>:<password>@<your company proxy>:<port>  ->Note no 's' in http://...

1
Проголосуйте за примітку про спеціальні символи в паролях. Це для мене це відсортувало.
Нік

@ Нік: Радий, що це допомогло.
fiberair

1

Я стою за корпоративним брандмауером, і мені також потрібно вказати доменне ім’я. Жодна з цих відповідей не спрацювала для мене. Ось що я зробив -

  1. Завантажено CNTLM з http://cntlm.sourceforge.net/
  2. Очевидно, встановив його.
  3. Відкрийте cntml.ini і змініть наступне

    Домен your_domain_name

    Ім'я користувача your_domain_username

    Пароль your_domain_passowrd

    PassLM 1AD35398BE6565DDB5C4EF70C0593492 (розкоментуйте це)

    PassNT 77B9081511704EE852F94227CF48A793 (розкоментуйте це теж)

    Проксі http: // localhost: 8888

  4. Перейдіть на сторінку services.msc та запустіть службу автентифікації CNTLM.

  5. Завантажте Fiddler 4/2 (як би вони його не називали).
  6. Встановіть і це. Це буде працювати в http: // localhost: 8888
  7. Тепер будь-яку програму, яку ви запускаєте вперед (проксі), перейдіть до http: // locahost: 3128 (це те, що працює CNTLM.)

У цьому випадку вкажіть http.proxy та https.proxy як http: // localhost: 8888

Це буде працювати для інших клієнтських програм. Просто вкажіть проксі як http: // localhost: 8888


Це був єдиний спосіб, який міг би працювати для мене. Найближчим до того, що я змусив його працювати без локального проксі, було встановити найновіші інструменти Node глобально, тоді з налаштуваннями проксі глобальні команди NPM працювали (наприклад, для встановлення bower). Але нічого, що працювало поверх NPM всередині VS, не було виправлено. Нові інструменти Node, очевидно, виправлені, але версії MS або Bower відстають. Тож спасибі, але, можливо, не кажіть людям вставляти паролі простого тексту всередину вихідного файлу. Налаштуйте користувача, домен і проксі, а потім запустіть команду CNTLM -M, щоб сформувати безпечне значення, яке замінює Пароль.
Тоні Уолл

1
Також вам не потрібні Скрипаль або будь-який інший рівень складності. Просто відредагуйте локальний файл .bowerrc проекту та додайте проксі-сервер та https-proxy, вказуючи на " localhost: 3128 ", тобто службу CNTLM. Те саме стосується GIT та NPM, хоча, як я вже сказав після оновлення глобально, у мене не було проблем з динамічною автентифікацією проксі-сервера моєї компанії за допомогою кешованого пароля (від входу в Visual Studio). NPM та GIT, звичайно, мають власні налаштування проксі та https-проксі, подібні до bowerrc на випадок, якщо хтось хоче редагувати їх у глобальних / користувацьких / проектних шляхах.
Тоні Уолл

1

його робота для мене, щоб змінити у .bowerrc файл

{
 "directory": "client / lib", 
 "реєстр": "http://bower.herokuapp.com",
 "proxy": "http://192.168.1.205:3228",
 "https-proxy": "http://192.168.1.205:3228"
}
  • де client / lib - це каталог встановлення, куди ви хочете встановити
  • а http://192.168.1.205:3228 - ваш проксі-сервер із портом. корпоративні довіреності можуть бути різними залежно від організації.

1

На додаток до встановлення наведеного нижче проксі в .bowerrc:

{
  "directory": "app/bower_components",
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "http-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "strict-ssl": false,
  "registry": "http://bower.herokuapp.com"
}

Мені потрібно виконати такі команди, щоб вирішити проблему:

npm cache clean
bower cache clean
bower install

1

Реєстр, використаний в інших відповідях, тепер застарілий. Будь ласка, оновіть його!

{
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "registry": "https://registry.bower.io"
}

0
{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

Цей код працював для мене. Я використовую Win 7 і chrome, а також git bash. Тут мало що потрібно очистити. Це займає у мене величезний час, щоб знайти фактичні дані щодо імені користувача, пароля, проксі-IP та порту. Я опишу це поетапно, щоб кожен, хто навчається, міг легко зрозуміти повідомлення:

  1. Створіть файл у блокноті з назвою .bowerrc у папці для входу; Ви можете перейти туди, набравши Пуск> Запуск>% UserProfile% і натиснути OK.
  2. Введіть код вище у файлі .bowerrc із наступними змінами:

    Замініть <USERNAME> його ідентифікатором користувача для з’єднання з Інтернетом або ідентифікатором для входу

    Замініть <PASSWORD>його паролем для підключення до Інтернету або паролем для входу.
    Замініть <PROXY_IP>і <PROXY_PORT>на робочу IP-адресу проксі-сервера та номер порту.

       **Note: There should be no angle brackets.**
    
  3. IP-адреса проксі-сервера повинен відрізнятися від вашого власного.

  4. Перш ніж використовувати будь-який проксі-IP та порт, перевірте, чи він працює, змінивши проксі-IP і порт.

  5. Ви можете перейти за цим посиланням, щоб дізнатися деталі налаштувань проксі-сервера в описі тут

  6. З цих налаштувань проксі-сервера ви отримаєте IP-проксі-порт і порт.
  7. Перевірте всі введені дані, щоб усі були правильними, та збережіть і закрийте файл.
  8. Відкрийте git bash і змініть каталог на файл проекту та введіть команду та натисніть enter, у моєму випадку, команду git bash:

a @ a-PC MINGW32 / d / conFusion

$ bower встановити

  1. Це працювало як магія.

0

Якщо комусь це допомагає, у мене виникла помилка "заблоковано груповою політикою"

Рішенням було зробити виняток у CryptoPrevent, програмі, встановленій на комп’ютерах нашої компанії, щоб запобігти криптозамикачам.


0

Для отримання відомостей у файл .bowerrc ви можете додати атрибут no-proxy. Я не знаю, з якого часу він підтримується, але він працює на Bower 1.7.4 і вирішує проблему Bower за корпоративним проксі з внутрішнім сховищем

.bowerrc:

{
  "directory": "bower_components", 
  "proxy": "http://yourProxy:yourPort",
  "https-proxy":"http://yourProxy:yourPort",
  "no-proxy":"myserver.mydomain.com"
}

З повагою


0

Переконайтесь, що у вашому паролі проксі немає спеціальних символів. Перетворити в шістнадцятковий Це працює для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.