Menggunakan npm di belakang proksi perusahaan .pac

158

Saya perlu mengunduh beberapa paket melalui npm tetapi konfigurasi proksi perusahaan kami adalah file .pac (saya di windows)

Saya sudah mencoba

npm config set proxy http://mydomain\username:[email protected]:8181/proxy.pac
npm config set https-proxy http://mydomain\username:[email protected]:8181/proxy.pac

atau

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

tapi itu tidak berhasil ...

ada saran? Terima kasih

Dokter
sumber
8
Saya tidak berpikir pertanyaan ini adalah duplikat, skrip pac dapat berisi beberapa alamat proxy tergantung pada target ip / alamat host, sedangkan dube hanya alamat 1 alamat proxy - Dari ulasan
Ferrybig
1
Tidak ada satu jawaban yang menunjukkan bagaimana menggunakan skrip pac yang dapat berisi beberapa alamat proxy tergantung pada alamat ip / host target. Apakah ada yang bisa membantu.
Partha Sarathi Ghosh
2
Bagi saya itu membantu membuka proxy.pacfile untuk mendapatkan alamat proxy dari itu. (Dalam kasus saya, saya hanya perlu beralih port ke 8080).
nomad
@ParthaSarathiGhosh Anda benar, tidak ada jawaban yang benar-benar menjelaskan cara menggunakan skrip PAC, jadi saya telah menambahkan jawaban lain yang membahas hal ini: stackoverflow.com/a/61811444 . Sudah terlambat beberapa tahun, tetapi lebih baik terlambat daripada tidak pernah sama sekali?
user1031921

Jawaban:

204

Saya baru saja mengalami masalah yang sangat mirip, di mana saya tidak bisa mendapatkan npm untuk bekerja di belakang server proxy kami.

Nama pengguna saya adalah dalam bentuk "domain \ nama pengguna" - termasuk garis miring dalam konfigurasi proksi yang menghasilkan garis miring yang muncul. Jadi memasuki ini:

npm config set proxy "http://domain\username:password@servername:port/"

lalu jalankan ini npm config get proxymengembalikan ini: http: // domain / nama pengguna: kata sandi @ servername: port /

Oleh karena itu untuk memperbaiki masalah, saya alih-alih URL mengkodekan backslash, jadi masukkan ini:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

dan dengan ini akses proxy diperbaiki.

Steve Roberts
sumber
5
itu menyebabkan Anda kehilangan% 5C .kunci bagian menjadi C .... lihat saya menyediakannya untuk Anda
sinisterrook
1
Saya baru saja memperbarui beberapa hal dan proxy saya berhenti berfungsi lagi. Ternyata dalam pengaturan "proxy" dari file .npmrc (seperti yang disebutkan di bawah oleh @Ovidiu Buligan) berisi% 5C untuk backslash, tetapi "https-proxy" hanya berisi "\". Mengubah ini juga dengan% 5C memperbaiki masalah. Saya kira ini juga dapat diperbarui dengan menjalankan konfigurasi npm set http_proxy " domain% 5Cusername: password @ servername: port /"
Steve Roberts
1
Saya mencoba mengkonfigurasi npm di belakang proksi, tetapi ada cara untuk melakukan "ping" menggunakan konfigurasi npm. Karena jika conf saya salah, pengguna saya akan diblokir di domain perusahaan saya.
Ricardo
3
Apa yang berhasil bagi saya adalah CLEAR variabel lingkungan sangat pertama. Gunakan set HTTP_PROXY = dan set HTTPS_PROXY =
Sydwell
4
Menambahkan strict-ssl=falseke .npmrcfile konfigurasi diselesaikan untuk saya di belakang proxy perusahaan - lihat jawaban dari @ ovidiu-buligan dan @ karthikeyan-a
Alexander McFarlane
64

Cari url pacfile di pengaturan Internet Explorer dan unduh file pac dari URL yang dikonfigurasi. File pac hanyalah file javascript dengan fungsi bernama FindProxyForURLyang mengembalikan host proxy yang berbeda dalam skenario yang berbeda.

Cobalah untuk menemukan host di file pac yang menurut Anda adalah untuk lalu lintas web umum dan hubungkan ke .npmrc C:\Users\<username>\.npmrc

proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Meskipun Anda dapat masuk dengan domain dan nama pengguna di mesin perusahaan Anda, sangat mungkin bahwa nama domain direktori aktif pengguna tidak diperlukan untuk proxy , hanya nama pengguna dan kata sandi (yang mungkin berbeda dari login Direktori Aktif Anda)

Jangan lupa mengutak-atik karakter sandi khusus.

Ovidiu Buligan
sumber
Terima kasih. saya menavigasi ke .npmrc dan mengubah pengaturan. itu berhasil
arn-arn
54

Unduh .pacfile Anda . Buka di editor mana saja dan cari PROXY = "PROXY X.X.X.X:80;. Anda mungkin memiliki banyak proxy, salin salah satu dari mereka dan jalankan perintah terminal berikut:

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

Sekarang Anda harus dapat menginstal paket apa pun!

Sumeet_Pol
sumber
1
Untuk bagian https-proxy, saya harus melakukan "... atur https-proxy = http: // ..." alih-alih "... atur https-proxy http: // ..." untuk membuatnya menjadi kerja. Hanya $ 0,02 saya.
Nick
Terima kasih pengaturan https-proxy ke http: // adalah satu-satunya yang berfungsi; setelah saya membatalkan variabel lingkungan http_proxy dan https_proxy dari bash!
Alex Punnen
Untuk https-proxy, saya tidak dapat mengatur ke "set https-proxy https: /.../", saya harus mengatur ke "set https-proxy http: // ..." (info proxy dari https -> http)
Mars
Hal yang sama juga berlaku untuk git,git config --global http.proxy http://X.X.X.X:80 git config --global https.proxy http://X.X.X.X:80
Nama Kode Jack
38

Saya memecahkan masalah ini dengan cara ini:

1) Saya menjalankan perintah ini:

npm config set strict-ssl false

2) Kemudian atur npm untuk dijalankan dengan http, alih-alih https:

npm config set registry "http://registry.npmjs.org/"

3) Kemudian instal paket Anda

npm install <package name>

KARTHIKEYAN.A
sumber
2
Hanya untuk menunjukkan bahwa pengaturan ketat-ssl npm ke false adalah masalah keamanan. Pertimbangkan untuk mengatur ca[]properti dengan benar pada npm.
Aaron C
26

Untuk memperluas jawaban @Steve Roberts.

Nama pengguna saya adalah dalam bentuk "domain \ nama pengguna" - termasuk garis miring dalam konfigurasi proksi yang menghasilkan garis miring yang muncul. Jadi memasuki ini:

npm config set proxy "http://domain\username:password@servername:port/"

Saya juga harus URL menyandikan domain\userstring saya , namun, saya memiliki ruang di dalam nama pengguna saya jadi saya menempatkan +untuk menyandikan pengkodean URL ruang, tapi itu akan dikodekan ganda sebagai %2B(yang merupakan pengkodean URL untuk tanda plus, namun URL encoding untuk spasi adalah %20), jadi saya harus melakukan yang berikut:

perintah npm

// option one 
// it works for some packages
npm config set http_proxy "http://DOMAIN%5Cuser+name:[email protected]:port"
npm config set proxy "http://DOMAIN%5Cuser+name:[email protected]:port"

// option two
// it works best for me
// please notice that I actually used a space 
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://DOMAIN%5Cuser name:[email protected]:port"
npm config set proxy "http://DOMAIN%5Cuser name:[email protected]:port"

// option two (B) as of 2019-06-01
// no DOMAIN
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://user name:[email protected]:port"
npm config set proxy "http://user name:[email protected]:port"

pemecahan masalah konfigurasi npm

Saya menggunakan npm config listuntuk mendapatkan nilai-nilai parsing yang telah saya tetapkan di atas, dan itulah bagaimana saya menemukan tentang pengkodean ganda. Aneh.

Pada dasarnya Anda harus mengetahui persyaratan berikut:

  1. Apakah DOMAINstring diperlukan untuk otentikasi
  2. Apakah Anda perlu menyandikan karakter khusus?
    • Spasi dan tanda (@) sangat menantang

Salam.

VARIABEL LINGKUNGAN WINDOWS (CMD Prompt)

Memperbarui

Ternyata bahkan dengan konfigurasi di atas, saya masih memiliki beberapa masalah dengan beberapa paket / skrip yang menggunakan Permintaan - klien HTTP Sederhana secara internal untuk mengunduh barang. Jadi, seperti yang dijelaskan readme di atas, kita bisa menentukan variabel lingkungan untuk mengatur proxy pada baris perintah, dan Request akan menghormati nilai-nilai itu.

Kemudian, setelah (dan saya enggan mengakuinya) beberapa percobaan (lebih seperti hari), mencoba mengatur variabel lingkungan saya akhirnya berhasil dengan pedoman berikut:

rem notice that the value after the = has no quotations
rem    - I believe that if quotations are placed after it, they become
rem    part of the value, you do not want that
rem notice that there is no space before or after the = sign
rem     - if you leave a space before it, you will be declaring a variable 
rem     name that includes such space, you do not want to do that
rem     - if you leave a space after it, you will be including the space
rem     as part of the value, you do not want that either
rem looks like there is no need to URL encode stuff in there
SET HTTP_PROXY=http://DOMAIN\user name:[email protected]:port
SET HTTPS_PROXY=http://DOMAIN\user name:[email protected]:port

cntlm

Saya menggunakan teknik di atas selama beberapa minggu, sampai saya menyadari overhead memperbarui kata sandi saya di semua alat yang membutuhkan pengaturan proxy.

Selain npm, saya juga menggunakan:

  • punjung
  • gelandangan
    • kotak virtual (menjalankan linux)
    • apt-get [linux]
  • git
  • vscode
  • kurung
  • atom
  • tsd

cntlm Langkah Pengaturan

Jadi, saya menginstal cntlm . Pengaturan cntlmcukup lurus ke depan, Anda mencari file ini @C:\Program Files\Cntlm\cntlm.ini

  1. Buka C:\Program Files\Cntlm\cntlm.ini (Anda mungkin memerlukan hak admin)
  2. mencari UsernamedanDomain garis (garis 8-9 saya pikir)
    • tambahkan nama pengguna Anda
    • tambahkan domain Anda
  3. Pada cmd prompt jalankan:

    cd C:\Program Files\Cntlm\
    cntlm -M
    cntlm -H  
    • Anda akan dimintai kata sandi:
     cygwin warning:
       MS-DOS style path detected: C:\Program Files\Cntlm\cntlm.ini
       Preferred POSIX equivalent is: /Cntlm/cntlm.ini
       CYGWIN environment variable option "nodosfilewarning" turns off this warning.
       Consult the user's guide for more details about POSIX paths:
         http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
     Password:
  4. Output yang Anda dapatkan cntlm -Hakan terlihat seperti:

    PassLM          561DF6AF15D5A5ADG  
    PassNT          A1D651A5F15DFA5AD  
    PassNTLMv2      A1D65F1A65D1ASD51  # Only for user 'user name', domain 'DOMAIN'
    • Disarankan agar Anda menggunakan PassNTLMv2 jadi tambahkan #baris sebelum PassLMdan PassNTatau jangan menggunakannya
  5. Tempel output dari cntlm -Hpada file ini menggantikan baris untuk PassLM, PassNTdanPassNTMLv2 , atau komentar baris asli dan tambahkan milik Anda.
  6. Tambahkan Proxyserver Anda . Jika Anda tidak tahu apa itu server proxy ... Lakukan apa yang saya lakukan, saya mencari file konfigurasi otomatis proxy saya dengan mencari AutoConfigURLkunci Registry diHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings . Arahkan ke url itu dan lihat kode yang kebetulan adalah JavaScript.
  7. Secara opsional, Anda dapat mengubah port tempat cntlm mendengarkan dengan mengubah Listen ####baris, di mana ####nomor port.

Atur NPM dengan cntlm

Jadi, Anda arahkan npm ke proxy cntml Anda, Anda dapat menggunakan ip, yang saya gunakan localhostdan port default untuk cntlm 3128sehingga url proxy saya terlihat seperti ini

http://localhost:3128

Dengan perintah yang tepat:

npm config set proxy http: // localhost: 3128

Jauh lebih sederhana. Anda mengatur semua alat Anda dengan url yang sama, dan Anda hanya memperbarui kata sandi di satu tempat. Hidup jadi jauh lebih sederhana.

Harus Menyiapkan Sertifikat npm CA

Dari dokumentasi npm ca

Jika proksi perusahaan Anda mencegat koneksi https dengan Sertifikat yang Ditandatangani Sendiri, ini adalah suatu keharusan untuk dihindari npm config set strict-ssl false (tidak-tidak besar).

Langkah dasar

  1. Dapatkan sertifikat dari browser Anda (Chromes berfungsi dengan baik). Ekspor sebagai basis-64 yang dikodekan X.509 (.CER)
  2. Ganti baris baru dengan \n
  3. Edit .npmrcbaris Andaca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

Masalah

Saya telah memperhatikan bahwa kadang-kadang npm semacam hang, jadi saya berhenti (kadang-kadang dengan paksa) cntlm dan restart.

Aaron C
sumber
7

Saya telah mengalami beberapa masalah dengan ini dan akhirnya yang saya lakukan adalah sebagai berikut:

  1. Fiddler Bekas, dengan "Otentikasi Otomatis" dipilih
  2. Dalam aturan khusus fiddler, saya menambahkan

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain\\username:password";}
  3. Akhirnya di npm saya mengatur proxy ke http: // localhost: 8888

Ini bekerja dengan baik.

Shoal Palli
sumber
Terima kasih! Bekerja seperti pesona !! Skenario saya: Nama pengguna adalah format "domain / nama pengguna". Kata sandi memiliki "@" di dalamnya. Tidak harus melakukan pengodean / decoding URL apa pun, dll.
A_B
Bekerja dengan sempurna untuk saya. Terima kasih banyak. Hanya ingin menunjukkan bahwa menggunakan "domain\\username:password"dapat menimbulkan ancaman keamanan Pencurian Identitas. Alih-alih menggunakan "(default)"konfigurasi dalam aturan khusus bekerja dengan apik. Fiddler harus dijalankan saat Anda menggunakan "npm" agar ini berfungsi.
pk10
7

Bagi siapa pun yang berjuang di balik firewall perusahaan, serta masalah dengan SSL (tidak dapat memperoleh sertifikat penerbit lokal), berikut adalah beberapa langkah yang dapat Anda coba:

Lupakan SSL

Jika Anda tidak khawatir tentang SSL, maka Anda dapat mengikuti saran dari banyak kontributor sebelumnya dengan mengatur proxy Anda dan mengubah registri ke versi yang tidak aman:

npm config set proxy http://username:password@proxyname:port
npm config set https-proxy http://username:password@proxyname:port
npm config set registry http://registry.npmjs.org/

"Gotcha" cepat di sini, kredensial proxy saya sama untuk permintaan aman dan tidak aman (perhatikan bagaimana saya meninggalkan protokol saya sebagai http: // untuk https-proxy konfigurasi ). Ini mungkin sama untuk Anda, dan mungkin juga tidak.

Saya ingin menyimpan SSL

Jika Anda ingin menyimpan SSL, dan tidak ingin menggunakan strict-ssl=false, maka Anda memiliki lebih banyak pekerjaan yang harus dilakukan. Bagi saya, saya berada di belakang firewall perusahaan dan kami menggunakan sertifikat yang ditandatangani sendiri, jadi saya menerima kesalahan unable to get local issuer certificate. Jika Anda berada di kapal yang sama dengan saya, maka Anda perlu mengatur cafile=opsi di file konfigurasi npm. Pertama, Anda perlu membuat file PEM yang menyimpan informasi tentang sertifikat yang ditandatangani sendiri. Jika Anda tidak tahu cara melakukannya, berikut adalah petunjuk untuk lingkungan Windows tanpa menggunakan perangkat lunak pihak ke-3:

Kami perlu secara eksplisit menunjukkan sertifikat mana yang harus dipercaya karena kami menggunakan sertifikat yang ditandatangani sendiri. Sebagai contoh saya, saya menavigasi ke www.google.com menggunakan Chrome sehingga saya bisa mengambil sertifikat.

Di Chrome, buka Inspect -> Security -> View Certificate. Anda akan melihat semua sertifikat yang memungkinkan koneksi SSL. Perhatikan bagaimana sertifikat ini ditandatangani sendiri. Bagian yang kabur adalah perusahaan saya, dan kami bukan Otoritas Bersertifikat. Anda dapat mengekspor jalur sertifikat lengkap sebagai file P7B, atau Anda dapat mengekspor sertifikat secara individual sebagai file CER (pengkodean base64). Mengekspor path lengkap sebagai P7B tidak banyak membantu Anda karena pada gilirannya Anda perlu membuka file ini di manajer sertifikat dan mengekspor sebagai file CER individu. Di Windows, mengklik dua kali file P7B akan membuka aplikasi Certificate Manager.

masukkan deskripsi gambar di sini

Mengekspor sebagai CER (Basis 64) benar-benar file teks dalam format berikut:

-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgITIwAAABWhFPjwukYhTAADAAAAFTANBgkqhkiG9w0BAQUF
ADBFMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGaXJ2aW5n
b0pvCkNmjWzaNNUg2hYET+pP5nP75aRu+kPRl9UnlQ....rest of certificate...
-----END CERTIFICATE-----

Untuk membuat file PEM kami, kami hanya perlu menumpuk sertifikat ini di atas satu sama lain menjadi satu file dan mengubah ekstensi ke .pem. Saya menggunakan notepad untuk melakukan ini.

Anda menumpuk sertifikat dalam urutan terbalik dari jalur sertifikat. Jadi di atas, saya akan mulai dengan * .google.com kemudian tempelkan Websense di bawahnya, kemudian Penerbit CA 1 dll. Dengan cara ini, sertifikat diurai dari atas ke bawah mencari Root CA yang sesuai. Cukup dengan memasukkan Root CA tidak akan berfungsi, tetapi kami juga tidak perlu menyertakan semua sertifikat. Dari jalur di atas, saya hanya perlu menyertakan sertifikat yang datang sebelum sertifikat Websense (Penerbitan CA 1, Kebijakan CA, Root CA).

Setelah sertifikat yang ditandatangani sendiri ini disimpan ke file PEM, kami siap untuk menginstruksikan npm untuk menggunakan sertifikat ini sebagai CA kami yang tepercaya. Cukup atur file config dan Anda harus siap:

npm config set cafile "C:\yourcerts.pem"

Sekarang, dengan set proxy Anda (http dan https), dan set registry untuk https://registry.npmjs.org, Anda harus dapat menginstal paket di belakang firewall perusahaan dengan sertifikat yang ditandatangani sendiri tanpa mengabaikan strict-sslpengaturan.

John Galt
sumber
6

Anda dapat memeriksa Fiddler jika NPM memberikan kesalahan Otentikasi. Mudah untuk menginstal dan mengkonfigurasi. Setel Aturan Fiddler ke Diotentikasi Secara Otomatis. Dalam .npmrc atur properti ini

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

Ini bekerja untuk saya :)

Rakesh Sharma
sumber
mengherankan, tidak ada konfigurasi yang saya gunakan untuk proxy saya bekerja, saya menggunakan ini dan membuka fiddler dan saya bisa menggunakannya dengan baik ...
Roberto
5

Coba ini, Tetapkan proxy di npm sebagai berikut

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
Mohammed Safeer
sumber
4

Anda akan mendapatkan host proxy dan port dari administrator atau dukungan server Anda.

Setelah itu diatur

npm config set http_proxy http://username:[email protected]:itsport
npm config set proxy http://username:[email protected]:itsport

Jika ada karakter khusus dalam kata sandi, coba dengan% urlencode. Misalnya: - pound (hash) harus diganti oleh% 23.

Ini bekerja untuk saya ...

Shamseer
sumber
3

Cukup buat file bernama file .npmrc di folder proyek Anda, itu akan menghindari pengaturan proxy di tingkat sistem

#Without password
proxy=http://ipaddress:80
https-proxy=http://ipaddress:80

#With password
proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Beri komentar seperti ini jika Anda tidak menggunakan proxy

#proxy=http://ipaddress:80
#https-proxy=http://ipaddress:80

#With password
#proxy=http://<username>:<pass>@proxyhost:<port>
#https-proxy=http://<uname>:<pass>@proxyhost:<port>
Vinayak Shedgeri
sumber
3

Tidak ada jawaban yang ada yang menjelaskan cara menggunakan npm dengan file PAC. Beberapa menyarankan untuk mengunduh file PAC, memeriksanya secara manual, dan memilih salah satu dari string "PROXY ...". Tetapi ini tidak berfungsi jika file PAC perlu memilih dari beberapa proksi, atau jika file PAC berisi logika kompleks untuk memotong proksi untuk URL tertentu.

Juga, beberapa proxy perusahaan memerlukan otentikasi NTLM. CNTLM dapat menangani otentikasi, tetapi tidak mendukung file PAC.

Alternatifnya adalah menggunakan Alpaca , yang mengeksekusi file PAC dalam JavaScript VM, dan melakukan otentikasi NTLM dengan proksi yang dihasilkan.

pengguna1031921
sumber
2

Jika Anda berada di belakang jaringan perusahaan dengan proxy, saya hanya menggunakan alat proxy ntlm dan menggunakan port dan proxy yang disediakan oleh ntlm, untuk saat ini saya menggunakan konfigurasi ini:

strict-ssl=false
proxy=http://localhost:3125

Saya harap ini membantu.

yunieski dieguez garcia
sumber
2

Gunakan perintah di bawah ini di cmd atau GIT Bash atau prompt lainnya

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

di mana 192.168.1.101 adalah proxy ip dan 4128 adalah port. ubah sesuai dengan pengaturan proxy Anda.

Pankaj
sumber
2

Anda harus menggunakan "npm config set http-proxy "

menggunakan:

npm config set http-proxy http://1.2.3.4:8181
npm config set https-proxy http://1.2.3.4:8181
Júnior Mendonça
sumber
1

Di tempat kerja kami menggunakan ZScaler sebagai proxy kami. Satu-satunya cara saya bisa mendapatkan npm untuk bekerja adalah menggunakan Cntlm .

Lihat jawaban ini:

NPM di belakang proksi NTLM

bruceceng
sumber
1

Coba ini, itu satu-satunya yang bekerja untuk saya:

npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl false install -g package

Perhatikan opsi --strict-ssl false

Semoga berhasil.

Matías Dell'Oso
sumber
1

The NPM Proxy pengaturan disebutkan dalam jawaban yang diterima memecahkan masalah, tapi seperti yang Anda lihat di ini masalah NPM , beberapa dependensi menggunakan GIT dan yang membuat pengaturan git proxy yang dibutuhkan , dan dapat dilakukan sebagai berikut:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port

Pengaturan proxy NPM menyebutkan:

npm config set proxy "http://username:password@host:port"
npm config set https-proxy "http://username:password@host:port"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
Josiel Faleiros
sumber
0

Saya memiliki masalah yang sama dan saya mencoba semua solusi di atas tetapi tidak ada yang bekerja untuk saya (saya menggunakan karakter khusus (seperti simbol '@') di kata sandi saya dan saya juga perlu menambahkan nama domain).

Selain itu saya agak khawatir untuk menambahkan kata sandi saya sebagai teks biasa. Ternyata solusi termudah untuk mengatasi semua tantangan ini adalah dengan menggunakan semacam proxy terbalik (seperti Fiddler).

Saya sudah menjelaskan langkah-langkah konfigurasi dalam jawaban ini dalam SO.

Karthik
sumber
0

Menambahkan baris di bawah ini dalam file .typingsrc membantu saya.

{
    "rejectUnauthorized": false,
    "registryURL" :"http://api.typings.org/"
 }
Tapas Ranjan Singh
sumber
0

Saya mengalami masalah serupa dan menemukan bahwa file konfigurasi npm saya (.npmrc) mengalami entri registri yang salah. berkomentar dan menjalankan npm install. itu berhasil.

Ravi Siva Prasad M
sumber
0

OS: Windows 7

Langkah-langkah yang berhasil bagi saya:

  1. npm config get proxy
  2. npm config get https-proxy

  3. Komentar: Saya menjalankan perintah ini untuk mengetahui pengaturan proxy saya
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install
Suchi Dvg
sumber
0

Karena saya masih memiliki masalah dengan pengaturan pengaturan proxy di kantor dan mematikannya di rumah, saya telah menulis dan menerbitkan npm-corpo-proxy.sh . Di setiap perusahaan, kata sandi harus sering diubah dan harus mengandung karakter khusus, yang harus dikodekan sebelum mengumpankan npm config (sama untuk backash form domain \ user).

Maciek Leks
sumber
0

Dari sedikit pencarian di google, hal pertama yang saya coba adalah ini

npm config set registry http://registry.npmjs.org/
npm config set proxy "your proxy"
npm config set https-proxy "your proxy"

Tetapi nPM tetap tampak kehilangan koneksi ketika mencoba melakukan "npm install". kemudian saya menjalankan baris ini di command prompt dan sekarang saya bisa menggunakan npm install

set NODE_TLS_REJECT_UNAUTHORIZED=0
Barkin Kaplan
sumber
0

Saya tidak bisa membuatnya bekerja dengan CNTLM. Saya mencoba mengikuti semua informasi yang diposting di atas, tetapi proxy masih tidak mengizinkan koneksi. Dengan Fiddler, Anda hanya perlu menginstalnya dan memeriksa opsi Autentikasi Otomatis. Tetapi untuk bekerja, saya harus menghapus file .npmrc dari folder pengguna saya, dan mengatur variabel lingkungan seperti yang ditunjukkan di sini , dengan nilai-nilai ini:

set npm_config_https-proxy="http://127.0.0.1:8888"

set npm_config_registry="http://registry.npmjs.org/"
Guilherme Pereira
sumber