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

Я пытаюсь использовать 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, видел похожие проблемы, но у них либо нет решения, либо это не похоже на мое.

Любые идеи?

Ответ 1

Спасибо @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-прокси

Ответ 2

Решение для меня - это config.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 на ваш прокси-сервер.

Ответ 3

Вы за прокси?

Установили ли переменные среды HTTP_PROXY и HTTPS_PROXY?

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

Ответ 4

Попробуйте изменить значение реестра в вашем .bowerrc:

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

Ответ 5

У меня не было файла .bowerrc для настройки параметров настройки. Я нашел настройки, живущие в файле с именем 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:[email protected]:port>>',  // change proxy here or at the top
    'https-proxy': '<<http://user:[email protected]: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;

Ответ 6

вы можете попробовать предложить @thebignet в тот же выпуск на GitHub

Установите proxy, https-proxy и strict-ssl конфигурацию в .bowerrc Файл:

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

Но необходимо выполнить команду из терминала:

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

Ответ 7

Для Win 7.

Что сработало для меня, ниже шагов, предложенных в этой ссылке - читайте ответ #nanowizard.

  • В файле .bowerrc удалите все настройки http_proxy/https_proxy, которые вы могли бы сделать это раньше. Это важно. Поэтому окончательный контент этого файла должен выглядеть так: -

    {
      "directory": "app/bower_components" 
    }
    
  • Установите переменные среды на вашем компьютере - http_proxy и https_proxy на свой корпоративный прокси-сервер. В случае, если ваш корпоративный прокси требует аутентификации, и если ваш пароль содержит специальные символы, преобразуйте его в шестнадцатеричную форму, как предложено this ссылка. Как и в моем случае, экранирование символов с помощью '\' не помогло. Также мне пришлось перезагрузить систему.

Примечание:  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://...

Ответ 8

"strict-ssl": false

in.bowerrc сделал для меня

Ответ 9

Я за корпоративным брандмауэром, и я должен указать доменное имя. Ни один из этих ответов не работал у меня. Вот что я сделал -

  • Загруженный CNTLM из http://cntlm.sourceforge.net/
  • Очевидно, что он установлен.
  • Откройте cntml.ini и измените следующие

    Домен your_domain_name

    Имя пользователя your_domain_username

    Пароль your_domain_passowrd

    PassLM 1AD35398BE6565DDB5C4EF70C0593492 (раскомментируйте это)

    PassNT 77B9081511704EE852F94227CF48A793 (раскомментируйте это тоже)

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

  • Перейдите в services.msc и запустите службу проверки подлинности CNTLM.

  • Загрузите Fiddler 4/2 (что бы они ни называли).
  • Установите это тоже. Это будет работать в http://localhost:8888
  • Теперь любая программа, которую вы выполняете вперед (прокси), - http://locahost:3128 (это то, что работает CNTLM.)

В этом случае укажите http.proxy и https.proxy как http://localhost:8888

Это будет работать для других клиентских программ. Просто укажите прокси как http://localhost:8888

Ответ 10

его работа для меня изменить файл .bowerrc

{
 "directory": "client/lib", 
 "registry": "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 - ваш прокси-сервер с портом. корпоративный прокси может быть различным в соответствии с ораганизацией.

Ответ 11

{
  "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 и хром, а также git bash. Здесь нужно кое-что очистить. Это занимает много времени, чтобы найти фактические данные о имени пользователя, пароле, прокси-IP и порту. Я опишу его шаг за шагом, чтобы каждый ученик мог легко понять сообщение:

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

    Замените <USERNAME> идентификатором пользователя вашего интернет-соединения или идентификатором входа в систему

    Замените <PASSWORD> паролем вашего интернет-соединения или паролем для входа. Замените <PROXY_IP> и <PROXY_PORT> рабочим IP-адресом прокси и его номером порта.

       **Note: There should be no angle brackets.**
    
  • IP-адрес прокси должен отличаться от вашего собственного IP-адреса.

  • Прежде чем использовать любой прокси-сервер и порт, вы должны проверить, работает ли он, изменив IP-адрес и порт прокси-сервера.

  • Вы можете просмотреть эту ссылку, чтобы узнать подробности настроек прокси в описание здесь

  • Из этих настроек прокси-сервера вы получите прокси-сервер и порт.
  • Повторно проверьте все входные данные, чтобы все были правильными, сохраните и закройте файл.
  • Откройте git bash и смените каталог на файл проекта и введите команду и нажмите enter, в моем случае, git bash:

a @a-PC MINGW32/d/conFusion

$bower install

  1. Он работал как магия.

Ответ 12

В случае, если это помогает кому-то, у меня была ошибка "bower blocked by group policy".

Решение должно было сделать исключение в CryptoPrevent, приложении, установленном на наших компьютерах компании, чтобы предотвратить блокировки криптографических сообщений.

Ответ 13

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

.bowerrc:

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

Привет

Ответ 14

Пожалуйста, убедитесь, что в вашем прокси-пароле нет специальных символов. Преобразуйте его в шестнадцатеричный. Это работает для меня.

Ответ 15

В дополнение к настройке ниже прокси в .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