29

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

14 ответов14

38

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" выше.

Ваша строка прокси может быть немного подправлена, но это сделало так, чтобы мне не приходилось добавлять это каждый раз.

ура

10

Может быть, установка переменной среды подойдет вам:

set HTTP_PROXY=http://user:pass@server.url:port

(В моем случае это решает проблему "подключить НЕИЗВЕСТНО", но я получаю совершенно другую ошибку "зависание сокета"). Я также попытался установить переменную окружения HTTPS_PROXY, но получил тот же результат.)

8

У меня была такая же проблема, и вот что я сделал, чтобы сделать эту работу:

  • Перейдите в: C:\Users\YourUserName
  • Создайте файл с именем .npmrc
  • И это запись будет читать:

    registry = http://registry.npmjs.org
    
  • Попробуйте командный node cli.js install npm -gf .

4

После некоторых исследований я мог бы использовать это следующим образом:

  1. Установите авторизационный прокси-сервер NTLM или другой прокси-сервер для NTLM, например Cntlm. Лично я предпочитаю сервер Python, потому что я могу с ним повозиться, и производительность не является проблемой.

  2. Настроить конфигурацию; обратите внимание, что в моем случае мне нужно было включить режимы LM и NT, и я подозреваю, что в настоящее время это нормальный случай.

  3. Задайте переменные среды http_proxy и https_proxy, чтобы они указывали на ваш локальный прокси:

    set http_proxy = "localhost:5865"
    set https_proxy = "localhost:5865"

  4. Теперь npm должен работать, конечно, он должен выполняться из оболочки, в которой определены вышеуказанные переменные среды.

3

Введите это в командной строке:

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

НЕ ЗАБУДЬТЕ ВКЛЮЧИТЬ HTTP:// перед своим именем пользователя. Это сработало для меня.

3

Следующее сработало для меня.

В Windows 7:

npm config set proxy xxhttp://username:password@proxyhost:port# 

Это должно создать файл с именем .npmrc в папке C:/users/<username> .

2

Каждый из приведенных выше ответов требует, чтобы пользователь написал свой пароль в текстовом файле или в переменной окружения.

Лично мне не нравилось подобное решение из-за их небезопасного подхода. Поэтому я попытался написать приложение, которое вводит токен Kerberos текущего пользователя в обмены между клиентом (npm, bower, git) и прокси. Тем не менее, Active Directory является проприетарной реализацией Kerberos.

Я использую это программное обеспечение каждый день на хосте Windows 8.1. Вы можете найти код (golang) и двоичные файлы первого выпуска на https://github.com/nilleb/authentication-proxy.

2

Эта проблема была решена для меня после создания файла .npmrc, как описано выше, а затем после запуска команды adduser и следования инструкциям cmd.

npm adduser

Запустите следующую команду, чтобы увидеть, есть ли у вас авторизованное имя пользователя:

npm whoami
1

Вы получите прокси-хост и порт от администратора вашего сервера или службы поддержки.

После этого настроить

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

Если в пароле есть специальный символ, попробуйте использовать% urlencode. Например:- фунт (хэш) должен быть заменен на% 23.

1

По крайней мере, в Windows это работает у меня со следующими настройками:

proxy=http://domain%5Cusername:password@proxy_ip:port

т. е. (1) использовать %5C вместо \ (как предложено в другом месте) и (2) использовать IP-адрес вместо имени локального компьютера для прокси-сервера.

1

Все три вещи работали для меня в .npmrc

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org
0

CNTLM не работал для меня. Я перепробовал все возможные комбинации. NPM выдавал ошибку аутентификации. Скрипач пришел на помощь и сэкономил мое время. Это легко установить и настроить. Установите для правила Fiddler значение «Автоматическая аутентификация».В .npmrc установите эти

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

У меня это сработало :)

0

То, что работало для меня, было следующим:

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

Мне не нужно было вводить имена пользователей или пароли, просто URL-адрес файла PAC.

0

Решение сработало для меня следующее:

Конфигурация npm http_proxy http://имя пользователя:пароль @ хост /IP:порт

Конфигурация npm установленный прокси http://имя пользователя:пароль @ хост /IP:порт

замените параметры на значения, в моем случае

имя пользователя: (пусто)

пароль: (пусто)

хост /IP : 192.36.36.110

порт : 8080

так что мои команды

Конфигурация npm http_proxy http://:@ 192.36.36.110:8080

Конфигурация npm для настройки прокси http://:@ 192.36.36.110:8080

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .