Saya perlu menjalankan Node dan NPM versi terbaru pada Windows. Saya menginstal Node 0.5.8 dan mengunduh sumber NPM dari GitHub. Langkah-langkah yang saya ikuti untuk menginstal NPM terdaftar di situs GitHub-nya tetapi saya memiliki masalah menjalankan perintah berikut:
node cli.js install npm -gf
tetapi gagal dengan pesan kesalahan berikut:
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
Saya pikir ini adalah masalah karena saya perlu otentikasi di proxy saya untuk terhubung ke Internet. Tetapi saya tidak menemukan cara untuk memberitahu installer untuk menggunakan kredensial saya untuk login. Apakah ada kemungkinan untuk memberikan IP proxy saya dan informasi masuk ke instalasi npm mungkin melalui argumen baris perintah?
Saya dapat memberikan log lengkap (tetapi tampaknya tidak memiliki informasi yang lebih relevan) menggunakan pastebin jika diperlukan.
Jawaban:
set http_proxy
bekerja sangat baik untuk saya, tetapi saya harus memasukkannya setiap kali saya membuka command prompt. Jadi saya harus menggabungkan beberapa jawaban dan sekarang jawaban saya permanen.Urutan saya adalah sebagai berikut:
C:\Users\YourUserName
.npmrc
proxy = http://domain\\username:password@ip:port
proxy = http://username:password@ip:port
npm
Yang lain memiliki kesuksesan ekstra dengan perintah tambahan berikut:
strict-ssl = false
* Anda harus dapat menggunakan alamat IP atau URL ke proxy sebagai pengganti "IP" di atas.
String proxy Anda mungkin perlu diubah sedikit, tetapi ini membuatnya agar saya tidak perlu menambahkan ini setiap saat.
Tepuk tangan
sumber
proxy = http://ip:port/ https-proxy = http://ip:port/ registry = http://registry.npmjs.org/ strict-ssl = false
domain\\user:password@urltoproxy:port
, ketika saya menjalankannpm install
opsi berubah menjadidomain/user:password@urltoproxy:port
Jadi bagaimana saya mengatasi ini?-ssl=false registry=http://registry.npmjs.org/ proxy=http://domain\\username:password#@proxy.url:8080
lalu ketika saya mendapatkan pengaturan dari konfigurasi dengannpm config get proxy
:http://domain/username:password#@proxy.url:8080
perhatikan bahwa backslash yang lolos '\\' berubah menjadi garis miring '/'Mungkin pengaturan variabel lingkungan akan bekerja untuk Anda:
(Dalam kasus saya, ini menyelesaikan "connect UNKNOWN", tapi saya mendapatkan kesalahan "socket hang up" yang sama sekali berbeda. Saya juga mencoba mengatur variabel lingkungan HTTPS_PROXY, tetapi mendapatkan hasil yang sama.)
sumber
set HTTP_PROXY=http://domain\user:[email protected]:port
Saya memiliki masalah yang identik ini dan inilah yang saya lakukan untuk membuatnya bekerja:
C:\Users\YourUserName
.npmrc
Dan isinya akan berbunyi:
Coba perintah
node cli.js install npm -gf
lagi.sumber
node config set proxy http://username:password@server:port
~/.npmrc
file seperti di atas, yang memberi tahu npm untuk menggunakanhttp://
registri alih-alihhttps://
, dan kemudian mengaturhttp_proxy
variabel lingkungan saya kehttp://myusername:[email protected]:1234
Setelah beberapa penelitian, saya bisa menggunakannya dengan cara ini:
Instal NTLM Authorization Proxy Server atau server proxy lain untuk NTLM, seperti Cntlm. Secara pribadi, saya lebih suka server python, karena saya bisa bermain-main dengannya, dan kinerja tidak menjadi masalah.
Siapkan konfigurasi; perhatikan bahwa dalam kasus saya, saya harus mengaktifkan mode LM dan NT, dan saya menduga itu adalah kasus yang normal, saat ini.
Setel variabel lingkungan http_proxy dan https_proxy untuk menunjuk ke proxy lokal Anda:
set http_proxy = "localhost: 5865"
set https_proxy = "localhost: 5865"
npm harus bekerja sekarang, tentu saja harus dijalankan dari shell di mana variabel lingkungan di atas didefinisikan.
sumber
Berikut ini bekerja untuk saya.
Di Windows 7:
Ini harus membuat file bernama
.npmrc
diC:/users/<username>
folder.sumber
Ketikkan ini di baris perintah:
npm set proxy http://user:pass@ip:port
npm set https-proxy http://user:pass@ip:port
JANGAN LUPA TERMASUK HTTP: // sebelum nama pengguna Anda. Itu berhasil untuk saya.
sumber
Masalah ini teratasi bagi saya setelah membuat file .npmrc seperti di atas, dan kemudian menjalankan perintah adduser dan mengikuti perintah cmd.
Jalankan comman berikut untuk melihat apakah Anda memiliki nama pengguna resmi:
sumber
Masing-masing jawaban di atas memerlukan pengguna untuk menulis kata sandi dalam file teks, atau dalam variabel lingkungan.
Secara pribadi saya tidak suka solusi seperti ini, untuk pendekatan tidak aman mereka. Jadi saya mencoba untuk menulis aplikasi yang menyuntikkan token Kerberos dari pengguna saat ini dalam pertukaran antara klien (npm, bower, git) dan proxy. Yang mengatakan, Active Directory hanyalah implementasi proprietary dari Kerberos.
Saya menggunakan perangkat lunak ini setiap hari, pada host Windows 8.1. Anda dapat menemukan kode (golang) dan rilis binari pertama di https://github.com/nilleb/authentication-proxy .
sumber
Ketiga hal tersebut bekerja untuk saya di .npmrc
sumber
Setidaknya di Windows, ini berfungsi untuk saya dengan pengaturan berikut:
yaitu, (1) menggunakan
%5C
alih-alih\
(seperti yang disarankan di tempat lain) dan (2) menggunakan alamat IP alih-alih nama mesin lokal untuk server proxy.sumber
Anda akan mendapatkan host proxy dan port dari administrator atau dukungan server Anda.
Setelah itu diatur
Jika ada karakter khusus dalam kata sandi, coba dengan% urlencode. Misalnya: - pound (hash) harus diganti oleh% 23.
sumber
Solusi yang bekerja untuk saya adalah sebagai berikut:
npm config atur http_proxy http: // nama pengguna : kata sandi @ host / IP : port
npm config set proxy http: // nama pengguna : kata sandi @ host / IP : port
ganti parameter dengan nilai, dalam kasus saya
nama pengguna : (kosong)
kata sandi : (kosong)
host / IP : 192.36.36.110
port : 8080
begitu juga perintah-Ku
npm config atur http_proxy http: //: @ 192.36.36.110: 8080
npm config set proxy http: //: @ 192.36.36.110: 8080
sumber
CNTLM tidak bekerja untuk saya. Saya mencoba semua kemungkinan kombinasi. NPM memberikan kesalahan Otentikasi. Fiddler datang untuk menyelamatkan dan menghemat waktu saya. Mudah untuk menginstal dan mengkonfigurasi. Setel Aturan Fiddler ke Diotentikasi Secara Otomatis. Dalam .npmrc atur ini
Ini bekerja untuk saya :)
sumber
Apa yang berhasil bagi saya adalah sebagai berikut:
Saya tidak harus memasukkan nama pengguna atau kata sandi, cukup url file PAC.
sumber