npm memiliki setelan terpisah proxy dan https-proxy. Perbedaannya adalah tujuan yang diminta. Untuk proxy HTTP biasa yang membuat terowongan HTTPS, kedua nilai bisa menunjuk endpoint http:// yang sama.

.npmrc tingkat proyek bisa berisi:

proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal

Ganti endpoint dokumentasi dengan proxy Anda; untuk pengujian registri publik yang diizinkan, daftar proxy HTTP menyediakan kandidat HTTP. Baris terakhir sengaja membiarkan registri internal yang disebut terhubung langsung. Itu bukan alamat proxy lain.

Minta npm membuat permintaan

Instalasi dari cache adalah uji rute yang buruk: npm mungkin sudah memiliki semua yang diperlukan. Ping registri adalah pemeriksaan yang lebih kecil:

npm ping --registry=https://registry.npmjs.org/

Penyelesaian berhasil menunjukkan pemanggilan npm ini mencapai rute registri tersebut. Ini tidak membuktikan setiap host tarball, dependensi Git, atau proses pengelola paket terpisah menggunakan jalur yang sama.

Untuk mencari setelan yang bertentangan, periksa nilai efektif alih-alih langsung mengedit lebih banyak berkas:

npm config get proxy
npm config get https-proxy
npm config get noproxy

Perintah ini bisa mencetak kredensial jika disertakan dalam URL. Periksa hasilnya secara lokal daripada menempelkannya tanpa perubahan ke laporan masalah.

.npmrc proyek tidak digunakan untuk instalasi global. Jika hanya npm install -g gagal, periksa konfigurasi efektif pemanggilan itu alih-alih menganggapnya membaca berkas proyek.

Periksa pengecualian sebelum mengganti IP

npm juga bekerja dengan variabel lingkungan proxy, dan setelan noproxy bisa berasal dari NO_PROXY. Tujuan yang dikecualikan oleh konfigurasi efektif bisa terhubung langsung meski nilai proxy ada. Sebaliknya, menghapus satu baris dari satu .npmrc tidak menghapus variabel lingkungan yang diwarisi.

Pisahkan kesalahan sertifikat

Proxy inspeksi yang diizinkan mungkin memerlukan CA organisasi yang belum dipercaya konfigurasi Node/npm Anda. npm mendukung berkas CA:

cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true

Gunakan bundel nyata yang disetujui untuk lingkungan itu. strict-ssl=false melemahkan verifikasi sertifikat; ini bukan pengganti pemilihan proxy atau materi kepercayaan yang tepat.

Setelah pengujian, hapus pengesampingan proyek yang Anda tambahkan dan periksa lagi nilai efektifnya. Proyek bisa mewarisi konfigurasi sebelumnya tanpa mengubah proyek lain pada mesin yang sama.

Artikel terkait