Как установить NPM за прокси-сервером аутентификации в Windows?
133964
Tobias
Мне нужно запустить последнюю версию Node и NPM в Windows. Я установил Node 0.5.8 и загрузил исходники NPM с GitHub. Шаги, которые я выполнил для установки NPM, были перечислены на его сайте GitHub, но у меня проблема с запуском следующей команды:
node cli.js install npm -gf
но это терпит неудачу со следующим сообщением об ошибке:
Error: connect UNKNOWN at errnoException (net_uv.js:566:11) at Object.afterConnect [as oncomplete] (net_uv.js:557:18) System Windows_NT 5.1.2600 command "...\\Node\\bin\\node.exe" "...\\npm\\cli.js" "install" "npm" "-gf" cwd ...\npm node -v v0.5.8 npm -v 1.0.94 code UNKNOWN
Я думаю, что это проблема, потому что мне нужна аутентификация на моем прокси для подключения к Интернету. Но я не нашел способа сказать установщику использовать мои учетные данные для входа в систему. Есть ли возможность предоставить мой IP-адрес прокси-сервера и информацию для входа в систему при установке npm, возможно, с помощью аргументов командной строки?
Я могу предоставить полный журнал (но, похоже, больше нет соответствующей информации), используя pastebin, если это необходимо.
Небольшая хитрость, если имя пользователя содержит нотацию домен \ пользователь, замените обратную косую черту с помощью escape-кода http (% 5C)
11 лет назад
6
@layos Спасибо, оооочень много. Если бы это было Reddit, я бы дал тебе золото.
Korinna 10 лет назад
0
set http_proxyработал очень хорошо для меня, но мне приходилось вводить его каждый раз, когда я открывал командную строку. Поэтому мне пришлось объединить несколько ответов, и теперь мой постоянный.
Моя последовательность пошла следующим образом:
Идти к C:\Users\YourUserName
Создайте файл с именем .npmrc
Внутри этого файла введите следующее (если вы находитесь в домене AD):
proxy = http://domain\\username:password@ip:port
Или используйте это, если вы НЕ находитесь в домене AD:
proxy = http://username:password@ip:port
Сохранить файл
Откройте командную строку и попробуйте использовать npm
Другие имели дополнительный успех с помощью следующей дополнительной команды:
strict-ssl = false
* Вы должны иметь возможность использовать IP-адрес или URL-адрес прокси вместо «IP» выше.
Ваша строка прокси может быть немного подправлена, но это сделало так, чтобы мне не приходилось добавлять это каждый раз.
ура
Заголовок, если ваш пароль содержит "@", npm не сможет правильно проанализировать ваши настройки прокси. Возможный обходной путь - ввести поддельное имя пользователя: пароль в конфигурации npm и использовать локальный прокси-сервер (например, fiddler), чтобы изменить заголовок Proxy-Authorization запроса, чтобы иметь правильное имя пользователя: пароль. Помните, что имя пользователя: пароль, хранящийся в Proxy-Authorization, закодирован в base64.
BStruthers 10 лет назад
3
Получил мою работу с: `proxy = http: // ip: port / https-proxy = http: // ip: port / registry = http://registry.npmjs.org/ strict-ssl = false`
Luke 10 лет назад
9
не заставил мою работать с именем пользователя: пароль
philx_x 8 лет назад
1
Привет, я попытался использовать `domain \\ user: password @ urltoproxy: port`, однако, когда я запускаю` npm install`, опция меняется на `domain / user: password @ urltoproxy: port` Так как мне обойти это?
Jacob Schneider 5 лет назад
0
10
nafisto
Может быть, установка переменной среды подойдет вам:
set HTTP_PROXY=http://user:pass@server.url:port
(В моем случае это решает проблему «подключить НЕИЗВЕСТНО», но я получаю совершенно другую ошибку «зависание сокета». Я также попытался установить переменную среды HTTPS_PROXY, но получил тот же результат.)
Я попытался установить переменную среды, а также попытался передать --proxy http: // user: pass@server.url: port в команду, но теперь я всегда получаю ECONNREFUSED. Нужно ли указывать мой домен AD для входа в прокси?
Tobias 12 лет назад
0
Работал как шарм. Спасибо!
x97mdr 11 лет назад
0
@Tobias попробуйте `установить HTTP_PROXY = http: // домен \ пользователь: pass@server.url: порт`
Adam Grant 10 лет назад
0
8
sam
У меня была такая же проблема, и вот что я сделал, чтобы сделать эту работу:
Идти к: C:\Users\YourUserName
Создайте файл с именем .npmrc
И это запись будет читать:
registry = http://registry.npmjs.org
Попробуйте команду еще node cli.js install npm -gfраз.
Я создал файл с указанным вами содержимым, но все еще получаю сообщение об ошибке НЕИЗВЕСТНО :(
Tobias 12 лет назад
0
Приветствия для этого. Сделал «реестр конфигурации npm http://registry.npmjs.org», чтобы обойти https: // и все хорошо на моей установке Windows.
Gavin Gilmour 12 лет назад
0
если кто-то получает сообщение ETIMEOUT, добавьте настройку прокси-сервера с помощью `node config set proxy http: // username: password @ server: port`
Jeremy S. 11 лет назад
1
Для меня сработало создание файла `~ / .npmrc`, как указано выше, который говорит npm использовать реестр` http: // `вместо` https: // `, а затем устанавливает мою переменную среды` http_proxy` в ` Http: // MyUserName: mypassword@proxy.company.com: 1234`
Maxy-B 11 лет назад
0
Заголовок, если ваш пароль содержит "@", npm не сможет правильно проанализировать ваши настройки прокси. Возможный обходной путь - ввести поддельное имя пользователя: пароль в конфигурации npm и использовать локальный прокси-сервер (например, fiddler), чтобы изменить заголовок Proxy-Authorization запроса, чтобы иметь правильное имя пользователя: пароль. Помните, что имя пользователя: пароль, хранящийся в Proxy-Authorization, закодирован в base64.
BStruthers 10 лет назад
0
В моем случае переключение реестра с `https: //` на `http: //` решило его
Neps 6 лет назад
0
4
rob
После некоторых исследований я мог бы использовать это следующим образом:
Установите авторизационный прокси-сервер NTLM или другой прокси-сервер для NTLM, например Cntlm. Лично я предпочитаю сервер python, потому что я могу с ним повозиться, и производительность не является проблемой.
Настроить конфигурацию; обратите внимание, что в моем случае мне нужно было включить режимы LM и NT, и я подозреваю, что в настоящее время это нормальный случай.
Задайте переменные среды http_proxy и https_proxy, чтобы они указывали на ваш локальный прокси:
set http_proxy = "localhost: 5865" set https_proxy = "localhost: 5865"
Теперь npm должен работать, конечно, он должен выполняться из оболочки, в которой определены вышеуказанные переменные среды.
3
Chummar
Следующее сработало для меня.
В Windows 7:
npm config set proxy xxhttp://username:password@proxyhost:port#
Это должно создать файл с именем .npmrcв C:/users/<username>папке.
3
Super Luvdub
Type this in command line:
npm set proxy http://user:pass@ip:port
npm set https-proxy http://user:pass@ip:port
DONT FORGET TO INCLUDE HTTP:// before your username. It worked for me.
2
John
Эта проблема была решена для меня после создания файла .npmrc, как описано выше, а затем после запуска команды adduser и следования инструкциям cmd.
npm adduser
Запустите следующую команду, чтобы увидеть, есть ли у вас авторизованное имя пользователя:
npm whoami
2
nilleb
Each one of the above answers needs the user to write her password in a text file, or in an environ ment variable.
Personally I didn't like a solution like these, for their insecure approach. So I tried to write an application which injects the Kerberos token of the current user in the exchanges between the client (npm, bower, git) and the proxy. That said, Active Directory is just a proprietary implementation of Kerberos.
i.e., (1) use %5C instead of \ (as suggested elsewhere) and (2) use the IP address instead of the local machine name for the proxy server.
Это правильно - домен + имя пользователя и пароль должны быть отдельно закодированы. Например, если у вас есть # в вашем пароле, замените его на% 23
saille 8 лет назад
0