Мне нужно скачать несколько пакетов через npm, но наша корпоративная конфигурация прокси - это файл .pac (я на Windows)
Я уже пробовала
npm config set proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac
npm config set https-proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac
или
npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac
но это не работает ...
любое предложение? Спасибо
proxy.pac
файл, чтобы получить из него адрес прокси. (В моем случае мне просто пришлось переключить порт на 8080).Ответы:
У меня только что была очень похожая проблема, когда я не мог заставить npm работать за нашим прокси-сервером.
Мое имя пользователя имеет форму «домен \ имя пользователя» - включая косую черту в конфигурации прокси, что привело к появлению прямой косой черты. Итак, введя это:
затем выполнение этого
npm config get proxy
возвращает это: http: // домен / имя пользователя: пароль @ имя_сервера: порт /Поэтому для решения проблемы я вместо URL закодировал обратную косую черту, поэтому ввел это:
и с этим доступ прокси был исправлен.
источник
strict-ssl=false
к.npmrc
файлу конфигурации, решенному для меня за корпоративным прокси-сервером - см. Ответы от @ ovidiu-buligan и @ karthikeyan-aНайдите URL-адрес
pac
файла в настройках локальной сети Internet Explorer и загрузите pac-файл с настроенного URL-адреса. Файл pac - это просто файл javascript с именем функции,FindProxyForURL
которая возвращает разные прокси-хосты в разных сценариях.Попробуйте найти хост в этом pac-файле, который, по вашему мнению, предназначен для общего веб-трафика, и подключите его к .npmrc в
C:\Users\<username>\.npmrc
Даже если вы можете войти в систему с помощью своего домена и имени пользователя на корпоративном компьютере, весьма вероятно, что имя домена Active Directory пользователя не требуется для прокси , только имя пользователя и пароль (которые могут отличаться от вашего имени входа Active Directory)
Не забудьте возиться с экранированием специальных символов пароля.
источник
Загрузите ваш
.pac
файл. Откройте его в любом редакторе и поищитеPROXY = "PROXY X.X.X.X:80;
. У вас может быть много прокси, скопируйте любой из них и выполните следующие команды терминала:Теперь вы сможете установить любой пакет!
источник
git config --global http.proxy http://X.X.X.X:80
git config --global https.proxy http://X.X.X.X:80
Я решил эту проблему следующим образом:
1) я запускаю эту команду:
npm config set strict-ssl false
2) Затем установите npm для работы с http вместо https:
npm config set registry "http://registry.npmjs.org/"
3) Затем установите пакет
npm install <package name>
источник
ca[]
свойства на npm.Чтобы расширить @Steve Робертс ответ.
Я также должен был URL-адрес кодировать мою
domain\user
строку, однако у меня есть пробел внутри моего имени пользователя, поэтому я поставил+
для кодирования пробела URL-кодировки, но он будет иметь двойную кодировку как%2B
(что является кодировкой URL для знака плюс, однако URL-адрес кодировка для пробела есть%20
), поэтому мне пришлось вместо этого сделать следующее:команда npm
устранение неполадок в конфигурации npm
Я использовал,
npm config list
чтобы получить проанализированные значения, которые я установил выше, и именно так я узнал о двойном кодировании. Weird.По сути, вы должны выяснить следующие требования:
DOMAIN
Требуется ли строка для аутентификацииС уважением.
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ WINDOWS (CMD Prompt)
Обновить
Оказывается, что даже с вышеупомянутыми конфигурациями у меня все еще были некоторые проблемы с некоторыми пакетами / сценариями, которые используют Request - Упрощенный HTTP-клиент для загрузки. Итак, как объяснил выше readme, мы можем указать переменные окружения для установки прокси в командной строке, и Request будет учитывать эти значения.
Затем, после (и я неохотно признаю это) нескольких попыток (больше как дней) попытки установить переменные окружения, я, наконец, добился следующих рекомендаций:
cntlm
Я использовал вышеописанную технику в течение нескольких недель, пока не осознал необходимость обновления моего пароля во всех инструментах, для которых требовалась настройка прокси.
Помимо npm я также использую:
шаги установки cntlm
Итак, я установил cntlm . Настройка
cntlm
довольно прямолинейна, вы ищете INI-файл @C:\Program Files\Cntlm\cntlm.ini
C:\Program Files\Cntlm\cntlm.ini
(вам могут потребоваться права администратора)Username
иDomain
строки (строка 8-9 я думаю)В командной строке cmd выполните:
Вывод, который вы получите,
cntlm -H
будет выглядеть примерно так:#
строку передPassLM
иPassNT
не используйте ихcntlm -H
ini-файла, заменив строки дляPassLM
,PassNT
иPassNTMLv2
, или закомментируйте исходные строки и добавьте свои.Proxy
серверы. Если вы не знаете, что такое прокси-сервер ... Сделайте то, что я сделал, я искал свой файл автоконфигурации прокси, ищаAutoConfigURL
ключ реестра вHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
. Перейдите по этому URL и просмотрите код, который оказался JavaScript.Listen ####
строку, где####
находится номер порта.Настройте NPM с помощью cntlm
Итак, вы указываете npm на ваш прокси cntml, вы можете использовать ip, я использовал
localhost
и порт по умолчанию для cntlm,3128
так что мой URL прокси выглядит такС правильной командой:
Это намного проще. Вы устанавливаете все свои инструменты с тем же URL-адресом и обновляете пароль только в одном месте. Жизнь намного проще, нет.
Необходимо настроить сертификат CA npm
Из НОЙ документации ок
Если ваш корпоративный прокси-сервер перехватывает соединения https со своим собственным самоподписанным сертификатом, этого следует избегать
(большой нет-нет).npm config set strict-ssl false
Основные шаги
\n
.npmrc
добавить строкуca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
вопросы
Я заметил, что иногда зависает npm, поэтому я останавливаю (иногда принудительно) cntlm и перезапускаю его.
источник
Я столкнулся с несколькими проблемами с этим и, наконец, я сделал следующее:
В пользовательских правилах Fiddler я добавил
Наконец, в npm я установил прокси на http: // localhost: 8888
Это работало нормально.
источник
"domain\\username:password"
может создать угрозу безопасности Identity Theft. Вместо этого использование"(default)"
конфигурации в пользовательских правилах работало очаровательно. Fiddler должен быть запущен, пока вы используете «npm», чтобы это работало.Для тех, кто борется за корпоративный брандмауэр, а также проблемы с SSL (не удается получить сертификат локального эмитента), вот несколько шагов, которые вы можете попробовать:
Забудь про SSL
Если вас не интересует SSL, вы можете последовать совету многих предыдущих участников, настроив прокси и изменив реестр на незащищенную версию:
Вкратце, я понял, что мои учетные данные прокси одинаковы для защищенных и незащищенных запросов (обратите внимание, как я оставил свой протокол как http: // для конфигурации https-proxy ). Это может быть то же самое для вас, а может и нет.
Я хочу сохранить SSL
Если вы хотите сохранить SSL и не хотите его использовать
strict-ssl=false
, у вас есть больше работы. Я за корпоративным брандмауэром, и мы используем самозаверяющие сертификаты, поэтому я получаю сообщение об ошибкеunable to get local issuer certificate
. Если вы находитесь в той же лодке, что и я, вам нужно будет установитьcafile=
опцию в конфигурационном файле npm. Во-первых, вам нужно создать файл PEM, который содержит информацию о ваших самозаверяющих сертификатах. Если вы не знаете, как это сделать, вот инструкции для среды Windows без использования стороннего программного обеспечения:Нам нужно явно указать, каким сертификатам следует доверять, потому что мы используем самозаверяющие сертификаты. Например, я перешел на сайт www.google.com с помощью Chrome, чтобы получить сертификаты.
В Chrome перейдите в «Проверка» -> «Безопасность» -> «Показать сертификат». Вы увидите все сертификаты, которые разрешают соединение SSL. Обратите внимание, как эти сертификаты являются самозаверяющими. Размытая часть - это моя компания, и мы не являемся сертифицированным органом. Вы можете экспортировать полный путь сертификата в виде файла P7B или экспортировать сертификаты отдельно в виде файлов CER (кодировка base64). Экспорт полного пути как P7B не принесет вам большой пользы, потому что вам, в свою очередь, нужно открыть этот файл в диспетчере сертификатов и все равно экспортировать как отдельные файлы CER. В Windows двойной щелчок по файлу P7B откроет приложение Certificate Manager.
Экспорт в формате CER (Base 64) - это действительно текстовый файл в следующем формате:
Чтобы создать наш файл PEM, нам просто нужно сложить эти сертификаты друг над другом в один файл и изменить расширение на .pem. Я использовал блокнот, чтобы сделать это.
Вы складываете сертификаты в обратном порядке от пути сертификата. Итак, выше, я бы начал с * .google.com, затем вставил бы под ним Websense, затем выдал CA 1 и т. Д. Таким образом, сертификаты анализируются сверху вниз в поисках подходящего корневого CA. Простое включение Root CA не сработает, но нам также не нужно включать все сертификаты. Из приведенного выше пути мне нужно только включить те сертификаты, которые предшествуют сертификату Websense (выдача CA 1, Policy CA, Root CA).
Как только эти самозаверяющие сертификаты будут сохранены в файле PEM, мы готовы дать команду npm использовать эти сертификаты в качестве нашего доверенного CA. Просто установите файл конфигурации, и вы должны быть готовы к работе:
Теперь, когда установлены прокси-серверы (http и https), а реестр настроен на
https://registry.npmjs.org
, вы сможете устанавливать пакеты за корпоративным брандмауэром с самозаверяющими сертификатами, не изменяяstrict-ssl
настройки.источник
Вы можете проверить Fiddler, если NPM выдает ошибку аутентификации. Это легко установить и настроить. Установите для правила Fiddler значение «Автоматически проверено». В .npmrc задайте эти свойства.
У меня это сработало :)
источник
Попробуйте это, установите прокси в npm следующим образом
источник
Вы получите прокси-хост и порт от администратора вашего сервера или службы поддержки.
После этого настроить
Если в пароле есть специальный символ, попробуйте использовать% urlencode. Например: - фунт (хэш) должен быть заменен на% 23.
Это сработало для меня ...
источник
Просто создайте файл с именем .npmrc file в папке вашего проекта, это позволит избежать настройки прокси на системном уровне.
Прокомментируйте это, если вы не используете прокси
источник
Ни один из существующих ответов не объясняет, как использовать npm с файлом PAC. Некоторые предлагают загрузить файл PAC, вручную проверить его и выбрать одну из строк «PROXY ...». Но это не работает, если файл PAC необходимо выбрать из нескольких прокси-серверов или если файл PAC содержит сложную логику для обхода прокси-серверов для определенных URL-адресов.
Кроме того, некоторые корпоративные прокси-серверы требуют NTLM-аутентификации. CNTLM может обрабатывать аутентификацию, но не поддерживает файлы PAC.
Альтернативой является использование Alpaca , которая выполняет файл PAC на виртуальной машине JavaScript и выполняет аутентификацию NTLM с полученным прокси.
источник
Если вы находитесь в корпоративной сети с прокси, я просто использовал инструмент прокси ntlm и использовал порт и прокси, предоставленные ntlm, например, я использовал эту конфигурацию:
Надеюсь, это поможет.
источник
Используйте команду ниже в cmd или GIT Bash или другом приглашении
где 192.168.1.101 - ip прокси, а 4128 - порт. изменить в соответствии с настройками прокси.
источник
Вы должны использовать «npm config set http-proxy »
использовать:
источник
На работе мы используем ZScaler в качестве нашего прокси. Единственный способ заставить npm работать - использовать Cntlm .
Смотрите этот ответ:
NPM за прокси NTLM
источник
Попробуйте это, это было единственное, что работало для меня:
npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl false установить -g пакет
Обратите внимание на опцию --strict-ssl false
Удачи.
источник
Настройка прокси-сервера NPM, упомянутая в принятом ответе, решает проблему, но, как вы можете видеть в этой проблеме npm , некоторые зависимости используют GIT, что делает необходимым настройку прокси-сервера git , и может быть выполнено следующим образом:
Упомянутая настройка прокси-сервера NPM:
источник
У меня была похожая проблема, и я перепробовал все обходные пути, описанные выше, но ни один из них не работал для меня (я использовал специальные символы (например, символ '@') в моем пароле, и мне также нужно было добавить доменное имя).
Кроме того, я немного опасался добавлять свой пароль в виде простого текста. Оказалось, что самым простым решением для преодоления всех этих проблем было использование некоторого обратного прокси-сервера (например, Fiddler).
Я уже подробно описал шаги настройки в этом ответе в SO.
источник
Добавление строк ниже в файле .typingsrc помогло мне.
источник
Я столкнулся с подобной проблемой и обнаружил, что мой файл конфигурации npm (.npmrc) имеет неправильную запись в реестре. закомментировал его и запустил npm install. это сработало.
источник
ОС: Windows 7
Шаги, которые работали для меня:
npm config get proxy
npm config get https-proxy
Комментарии: я выполнил эту команду, чтобы узнать настройки моего прокси
npm config rm proxy
npm config rm https-proxy
npm config set registry=http://registry.npmjs.org/
npm install
источник
Поскольку у меня все еще есть проблемы с настройкой параметров прокси на работе и отключением их дома, я написал сценарий и опубликовал npm-corpo-proxy.sh . В каждой корпорации пароль должен часто меняться и должен содержать специальные символы, которые должны быть закодированы перед передачей конфигурации npm (то же самое для обратной формы домена \ пользователя).
источник
Из небольшого поиска в Google первое, что я попробовал, было это
Но все же npm, похоже, терял связь при попытке выполнить npm install. Затем я запустил эту строку в командной строке, и теперь я могу использовать npm install
источник
Я не мог заставить его работать с CNTLM. Я попытался проследить всю информацию, размещенную выше, но прокси все еще не авторизовал соединение. С Fiddler вам просто нужно установить его и выбрать опцию «Автоматически аутентифицироваться». Но для работы мне пришлось удалить файл .npmrc из моей пользовательской папки и установить переменные среды, как указано здесь , со следующими значениями:
источник