Беседа за прокси
bower install
за прокси-сервером не удается выполнить тайм-аут со следующими настройками (некоторые настройки бесполезны...):
git config --global http.proxy fr-proxy.example.com:3128
git config --global https.proxy fr-proxy.example.com:3128
export http_proxy=http://fr-proxy.example.com:3128
export https_proxy=http://fr-proxy.example.com:3128
npm config set proxy http://fr-proxy.example.com:3128
npm config set https-proxy http://fr-proxy.example.com:3128
npm config set registry http://registry.npmjs.org/
Я также попытался установить/удалить bower и bower clean cache
.
Ответы
Ответ 1
Измените файл .bowerrc и добавьте желаемую конфигурацию прокси:
{
"proxy":"http://<host>:<port>",
"https-proxy":"http://<host>:<port>"
}
Если вы работаете за аутентифицированным прокси, пользователь и пароль должны быть включены следующим образом:
{
"proxy":"http://<user>:<password>@<host>:<port>",
"https-proxy":"http://<user>:<password>@<host>:<port>"
}
Обычно,.bowerrc находится рядом с bower.json. И если нет файла .bowerrc рядом с файлом bower.json, вы можете создать его самостоятельно.
Ответ 2
У меня проблема с командой bower list
, которая была вызвана тем, что bower использует git
с git://
URL-адресами для получения списка удаленных репозиториев GitHub, но протокол git://
блокируется нашим корпоративным брандмауэром. Чтобы решить эту проблему в дополнение к настройке переменных среды, я должен добавить дополнительные конфигурации в git тоже. Здесь полный список команд, которые я должен выполнить (не забудьте заменить прокси-хост и порт на ваш):
# set proxy for command line tools
export HTTP_PROXY=http://localhost:3128
export HTTPS_PROXY=http://localhost:3128
export http_proxy=http://localhost:3128
export https_proxy=http://localhost:3128
# add configuration to git command line tool
git config --global http.proxy http://localhost:3128
git config --global https.proxy http://localhost:3128
git config --global url."http://".insteadOf git://
Стандартные переменные среды в Bash имеют верхний регистр, для прокси - теги HTTP_PROXY
и HTTPS_PROXY
, но некоторые инструменты ожидают, что они будут в нижнем регистре, одним из этих инструментов является беседка. Вот почему я предпочитаю иметь прокси-сервер в двух случаях: нижний и верхний.
Bower использует git для получения пакетов из GitHub, поэтому ключи конфигурации нужно добавить и в git. http.proxy
и https.proxy
являются настройками прокси-сервера и должны указывать на ваш прокси-сервер. И последнее, но не менее важно сообщить git не использовать протокол git://
, поскольку он может быть заблокирован брандмауэром. Вам необходимо заменить его стандартным протоколом http://
. Кто-то предлагает использовать https://
вместо git://
следующим образом: git config --global url."https://".insteadOf git://
, но я получал ошибку Connection reset by peer
, поэтому я использую http://
, который отлично работает для меня.
В домашних условиях я не использую прокси-сервер и у меня нет корпоративного брандмауэра, поэтому я предпочитаю переключиться на "обычные" настройки без прокси-сервера. Вот как я это делаю:
# remove proxy environment variables
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
# remove git configurations
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."http://".insteadOf
Я не очень хорошо помню вещи, поэтому я никогда не запомню все эти команды. Вдобавок к этому я ленив и не хочу набирать эти длинные команды вручную. Вот почему я создавал функции для установки и отмены настроек прокси-сервера. Здесь 2 функции, которые я добавил в мой файл .bashrc
после некоторых определений псевдонимов:
set_proxy() {
export HTTP_PROXY=http://localhost:3128
export HTTPS_PROXY=http://localhost:3128
# some tools uses lowercase env variables
export http_proxy=http://localhost:3128
export https_proxy=http://localhost:3128
# config git
git config --global http.proxy http://localhost:3128
git config --global https.proxy http://localhost:3128
git config --global url."http://".insteadOf git://
}
unset_proxy() {
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."http://".insteadOf
}
Теперь, когда мне нужно установить прокси-сервер, я просто выполняю команду set_proxy
и команду unset unset_proxy
. С помощью автозаполнения Bash мне даже не нужно вводить эти команды, но пусть вкладка завершит их для меня.
Ответ 3
My script (с помощью git bash в Windows) для установки прокси был выполнен другим пользователем из того, что я использовал для беседки. Переменные среды не учитывались.
Таким образом, достаточна следующая настройка, как указано в других ответах:
export http_proxy=http://fr-proxy.example.com:3128
export https_proxy=http://fr-proxy.example.com:3128
Ответ 4
Если ваша ОС - Linux или OS X, попробуйте выполнить следующую команду
bash
http_proxy='proxy server' https_proxy='proxy server' bower