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
proxy.pac
file untuk mendapatkan alamat proxy dari itu. (Dalam kasus saya, saya hanya perlu beralih port ke 8080).Jawaban:
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:
lalu jalankan ini
npm config get proxy
mengembalikan ini: http: // domain / nama pengguna: kata sandi @ servername: port /Oleh karena itu untuk memperbaiki masalah, saya alih-alih URL mengkodekan backslash, jadi masukkan ini:
dan dengan ini akses proxy diperbaiki.
sumber
strict-ssl=false
ke.npmrc
file konfigurasi diselesaikan untuk saya di belakang proxy perusahaan - lihat jawaban dari @ ovidiu-buligan dan @ karthikeyan-aCari url
pac
file di pengaturan Internet Explorer dan unduh file pac dari URL yang dikonfigurasi. File pac hanyalah file javascript dengan fungsi bernamaFindProxyForURL
yang 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
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.
sumber
Unduh
.pac
file Anda . Buka di editor mana saja dan cariPROXY = "PROXY X.X.X.X:80;
. Anda mungkin memiliki banyak proxy, salin salah satu dari mereka dan jalankan perintah terminal berikut:Sekarang Anda harus dapat menginstal paket apa pun!
sumber
git config --global http.proxy http://X.X.X.X:80
git config --global https.proxy http://X.X.X.X:80
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>
sumber
ca[]
properti dengan benar pada npm.Untuk memperluas jawaban @Steve Roberts.
Saya juga harus URL menyandikan
domain\user
string 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
pemecahan masalah konfigurasi npm
Saya menggunakan
npm config list
untuk 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:
DOMAIN
string diperlukan untuk otentikasiSalam.
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:
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:
cntlm Langkah Pengaturan
Jadi, saya menginstal cntlm . Pengaturan
cntlm
cukup lurus ke depan, Anda mencari file ini @C:\Program Files\Cntlm\cntlm.ini
C:\Program Files\Cntlm\cntlm.ini
(Anda mungkin memerlukan hak admin)Username
danDomain
garis (garis 8-9 saya pikir)Pada cmd prompt jalankan:
Output yang Anda dapatkan
cntlm -H
akan terlihat seperti:#
baris sebelumPassLM
danPassNT
atau jangan menggunakannyacntlm -H
pada file ini menggantikan baris untukPassLM
,PassNT
danPassNTMLv2
, atau komentar baris asli dan tambahkan milik Anda.Proxy
server Anda . Jika Anda tidak tahu apa itu server proxy ... Lakukan apa yang saya lakukan, saya mencari file konfigurasi otomatis proxy saya dengan mencariAutoConfigURL
kunci Registry diHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
. Arahkan ke url itu dan lihat kode yang kebetulan adalah JavaScript.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
localhost
dan port default untuk cntlm3128
sehingga url proxy saya terlihat seperti iniDengan perintah yang tepat:
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
(tidak-tidak besar).npm config set strict-ssl false
Langkah dasar
\n
.npmrc
baris 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.
sumber
Saya telah mengalami beberapa masalah dengan ini dan akhirnya yang saya lakukan adalah sebagai berikut:
Dalam aturan khusus fiddler, saya menambahkan
Akhirnya di npm saya mengatur proxy ke http: // localhost: 8888
Ini bekerja dengan baik.
sumber
"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.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:
"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 kesalahanunable to get local issuer certificate
. Jika Anda berada di kapal yang sama dengan saya, maka Anda perlu mengaturcafile=
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.
Mengekspor sebagai CER (Basis 64) benar-benar file teks dalam format berikut:
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:
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 mengabaikanstrict-ssl
pengaturan.sumber
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
Ini bekerja untuk saya :)
sumber
Coba ini, Tetapkan proxy di npm sebagai berikut
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.
Ini bekerja untuk saya ...
sumber
Cukup buat file bernama file .npmrc di folder proyek Anda, itu akan menghindari pengaturan proxy di tingkat sistem
Beri komentar seperti ini jika Anda tidak menggunakan proxy
sumber
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.
sumber
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:
Saya harap ini membantu.
sumber
Gunakan perintah di bawah ini di cmd atau GIT Bash atau prompt lainnya
di mana 192.168.1.101 adalah proxy ip dan 4128 adalah port. ubah sesuai dengan pengaturan proxy Anda.
sumber
Anda harus menggunakan "npm config set http-proxy "
menggunakan:
sumber
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
sumber
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.
sumber
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:
Pengaturan proxy NPM menyebutkan:
sumber
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.
sumber
Menambahkan baris di bawah ini dalam file .typingsrc membantu saya.
sumber
Saya mengalami masalah serupa dan menemukan bahwa file konfigurasi npm saya (.npmrc) mengalami entri registri yang salah. berkomentar dan menjalankan npm install. itu berhasil.
sumber
OS: Windows 7
Langkah-langkah yang berhasil bagi saya:
npm config get proxy
npm config get https-proxy
Komentar: Saya menjalankan perintah ini untuk mengetahui pengaturan proxy saya
npm config rm proxy
npm config rm https-proxy
npm config set registry=http://registry.npmjs.org/
npm install
sumber
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).
sumber
Dari sedikit pencarian di google, hal pertama yang saya coba adalah ini
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
sumber
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:
sumber