Baca tentang variabel proxy dalam .npmrc
file tetapi tidak berfungsi. Mencoba menghindari mengunduh secara manual semua paket yang diperlukan dan menginstal.
266
Saya memecahkan masalah ini dengan cara ini:
Saya menjalankan perintah ini:
npm config set strict-ssl false
Kemudian atur npm untuk dijalankan dengan http, bukan https:
npm config set registry "http://registry.npmjs.org/"
Kemudian saya menginstal paket menggunakan sintaks ini:
npm --proxy http://username:[email protected]:80 install packagename
Lewati username:password
bagian ini jika proxy tidak mengharuskan Anda untuk mengautentikasi
EDIT: Seorang teman saya baru saja menunjukkan bahwa Anda mungkin mendapatkan NPM untuk bekerja di belakang proxy dengan mengatur KEDUA HTTP_PROXY dan variabel lingkungan HTTPS_PROXY, kemudian biasanya mengeluarkan perintah npm install express (misalnya)
EDIT2: Seperti komentar @BStruthers, perlu diingat bahwa kata sandi yang mengandung "@" tidak akan diuraikan dengan benar, jika mengandung @ cantumkan seluruh kata sandi dalam tanda kutip
my@password
, file .npmrc Anda seharusnyamy%40password
untuk bagian kata sandi. Menempatkannya dalam tanda kutip bekerja dalam beberapa kasus, tetapi menyandikannya sangat mudah.Setup
npm
proxyUntuk
HTTP
:Untuk
HTTPS
:gunakan alamat proxy https jika ada
lain menggunakan kembali alamat proxy http
Catatan : https-proxy tidak memiliki
https
protokol, tetapihttp
.sumber
Jika ragu, coba semua perintah ini, seperti yang saya lakukan:
=======
MEMPERBARUI
Masukkan pengaturan Anda ke dalam
~/.bashrc
atau~/.bash_profile
jadi Anda tidak perlu khawatir tentang pengaturan Anda setiap kali Anda membuka jendela terminal baru!Jika perusahaan Anda seperti milik saya, saya harus sering mengganti kata sandi. Jadi saya menambahkan yang berikut ke ~ / .bashrc atau ~ / .bash_profile sehingga setiap kali saya membuka terminal, saya tahu npm saya mutakhir!
Cukup tempel kode berikut di bagian bawah
~/.bashrc
file Anda :Kemudian edit bidang "nama pengguna", "kata sandi", dan "proxy" dalam kode yang Anda tempel.
Buka terminal baru
Periksa pengaturan Anda dengan menjalankan
npm config list
dancat ~/.npmrc
Coba instal modul Anda menggunakan
npm install __
, ataunpm --without-ssl --insecure install __
, ataunpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
sumber
npm config set registry http://registry.npmjs.org/
,npm config set proxy http://myusername:[email protected]:8080
,npm config set https-proxy http://myusername:[email protected]:8080
,npm config set strict-ssl false
untuk config NPM dan kemudian diinstal paket NPM menggunakannpm --proxy http://myusername:[email protected]:8080 --without-ssl --insecure -g install {packagename}
. Terima kasihSudahkah Anda mencoba opsi baris perintah alih-alih
.npmrc
file?Saya pikir sesuatu seperti
npm --proxy http://proxy-server:8080/ install {package-name}
bekerja untuk saya.Saya juga melihat yang berikut ini:
npm config set proxy http://proxy-server:8080/
sumber
Meskipun sudah ada banyak saran yang baik, untuk lingkungan saya (Windows 7, menggunakan PowerShell) dan versi terakhir yang tersedia dari node.js (v8.1.2) semua di atas tidak berfungsi, kecuali ketika saya mengikuti pengaturan brunowego .
Jadi, periksa pengaturan Anda dengan:
Pengaturan di belakang proxy:
Semoga ini akan menghemat waktu untuk seseorang
sumber
Ini berfungsi untuk saya di Windows:
Jika Anda tidak berada dalam domain apa pun, gunakan:
Jika password Anda mengandung karakter khusus seperti
"
,@
,:
dan sebagainya, menggantinya dengan URL dikodekan nilai-nilai mereka. Misalnya"
->%22
,@
->%40
,:
->%3A
.%5C
digunakan untuk karakter\
.sumber
encodeURIComponent("YourP@ssword")
untuk mendapatkan versi sandi Anda yang disandikan.Untuk mengatur proxy http, atur flag -g :
sudo npm config set proxy http://proxy_host:port -g
Untuk proxy https, sekali lagi pastikan flag -g disetel:
sudo npm config set https-proxy http://proxy_host:port -g
sumber
sumber
Ini bekerja untuk saya
sumber
vim ~/.npmrc
di mesin Linux Anda dan tambahkan berikut ini. Jangan lupa untuk menambahkanregistry
bagian karena ini menyebabkan kegagalan dalam banyak kasus.sumber
https-proxy=https://..
kehttps-proxy=http://..
Akhirnya saya berhasil menyelesaikan masalah ini di belakang proxy dengan otentikasi AD. Saya harus mengeksekusi:
Sangat penting untuk menyandikan URL karakter chars khusus seperti backshlash atau # Dalam kasus saya, saya harus menyandikan
backshlash
dengan% 5C sehinggadomain\user will
menjadidomain%5Cuser
#
masuk dengan%23%0A
begitu kata sandi sepertiPassword#2
akanPassword%23%0A2
Saya juga menambahkan pengaturan berikut:
sumber
Meskipun saya menetapkan proxy dengan config, masalah tidak terpecahkan tetapi setelah yang satu ini bekerja untuk saya:
sumber
Saya mencoba semua opsi ini, tetapi proxy saya tidak memilikinya karena suatu alasan. Kemudian, lahir dari kehancuran / keputusasaan, saya mencoba secara acak
curl
di shell Git Bash saya, dan ternyata berhasil.Membatalkan pengaturan semua opsi proxy
Dan kemudian berjalan
npm install
di shell Git Bash saya bekerja dengan sempurna. Saya tidak tahu bagaimana ini diatur dengan benar untuk proksi dan Windowscmd
prompt tidak, tetapi berhasil.sumber
Ini menyelesaikan masalah saya.
sumber
Setelah akhirnya mengikat jawaban yang berbeda, empat baris pertama @Kayvar jawaban membantu saya untuk menyelesaikan masalah:
sumber
Ini berhasil untuk saya. Tetapkan proxy http dan https.
sumber
Cobalah untuk menemukan .npmrc di C: \ Users \ .npmrc
kemudian buka (notepad), tulis, dan simpan di dalam:
PS: hapus "<" dan ">" tolong !!
sumber
Bagi saya meskipun python dll semua akan bekerja meskipun npm proxy perusahaan kami tidak akan.
Saya mencoba
npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/
seperti yang diinstruksikan tetapi terus mendapatkan kesalahan yang sama.
Hanya ketika saya dihapus
https-proxy https://proxyccc.xxx.ca:8080
dari file .npmrc yang menginstal npm electron --save-dev bekerjasumber
https-proxy
mungkin tidakhttps:
. Setidaknya, memiliki port yang sama untuk masing-masing mungkin tidak benar, tetapi saya pikir mereka berdua mungkin memiliki nilai yang sama.Di sistem Windows
Coba hapus pengaturan proxy dan registri (jika sudah disetel) dan setel variabel lingkungan pada baris perintah via
kemudian coba jalankan npm install. Dengan ini, Anda tidak akan mengatur proxy di .npmrc tetapi untuk sesi itu akan berfungsi.
sumber
SET HTTP_PROXY http://username:password@domain:port
tetapi beralih keSET HTTP_PROXY=http://username:password@domain:port
tampaknya membuat semuanya berfungsiGunakan perintah di bawah ini di cmd atau GIT Bash atau prompt lainnya
config set proxy $ npm " 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. ini bekerja untuk saya.
sumber
Banyak aplikasi (misalnya npm) dapat menggunakan pengaturan proxy dari variabel lingkungan pengguna.
Anda bisa menambahkan ke lingkungan Anda mengikuti variabel HTTP_PROXY dan HTTPS_PROXY yang akan memiliki nilai yang sama untuk masing-masing variabel
http: // pengguna: kata sandi @ proxyAddress: proxyPort
Misalnya, jika Anda memiliki Windows, Anda dapat menambahkan proxy sebagai berikut:
sumber
Dalam kasus saya, saya lupa mengatur "http: //" di file konfigurasi saya (dapat ditemukan di C: \ Users \ [USERNAME] \ .npmrc) alamat proxy. Jadi, bukannya memiliki
Saya punya
Yang tentu saja tidak berhasil, tetapi pesan kesalahan tidak banyak membantu ...
sumber
Ada banyak jawaban di atas untuk pertanyaan ini, tetapi tidak ada yang bekerja untuk saya. Semuanya disebutkan untuk ditambahkan
http://
awalan. Jadi saya menambahkannya juga. Semua gagal.Akhirnya berhasil setelah saya tidak sengaja menghapus
http://
awalan. Konfigurasi akhir seperti ini:Saya tidak tahu logika di balik ini, tetapi itu berhasil. Jika tidak ada jawaban di atas yang berfungsi untuk Anda, mungkin Anda dapat mencoba cara ini. Semoga yang ini bermanfaat.
sumber
Ada informasi bagus di halaman curl tentang masalah SSL dan sertifikat . Saya mendasarkan sebagian besar jawaban saya pada informasi di sana.
Menggunakan strict-ssl false adalah praktik buruk dan dapat membuat masalah. Yang bisa kami lakukan adalah menambahkan sertifikat yang disuntikkan, oleh sertifikat "man in the middle".
Cara mengatasi ini di Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
mana rootcert adalah nama file dari sertifikat yang Anda simpan di langkah 5.
npm config set cafile **C:\Users\username\cacert.pem
mana C: \ Users \ username \ cacert.pem adalah path dari langkah 10.
npm config set strict-ssl true
Fiuh! Kita berhasil! Sekarang npm dapat mengerti cara menghubungkan. Bonusnya adalah Anda dapat memberi tahu curl untuk menggunakan cabundle.pem yang sama dan ia juga akan memahami HTTPs.
sumber
Berikut langkah-langkah yang saya ikuti (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Ekspor sertifikat ke sistem file Anda dari alamat berikut: https://registry.npmjs.org
Arahkan ke lokasi sertifikat yang diekspor dan keluarkan perintah berikut:
npm config set cafile npm_certificate.cer
Tambahkan perubahan berikut ke file:
registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
Sekarang Anda harus siap untuk pergi!
sumber
Masalah saya menjadi kesalahan konyol di pihak saya. Karena suatu hari saya dengan cepat menjatuhkan proksi saya ke file windows * .bat (http_proxy, https_proxy, dan ftp_proxy), saya lupa melarikan diri dari karakter khusus untuk domain \ pengguna urkodekan \ pengguna (% 5C) dan kata sandi memiliki tanda tanya ' (% 3F). Artinya, setelah Anda memiliki perintah yang disandikan, jangan lupa untuk melarikan diri dari '%' dalam perintah file bat.
aku berubah
untuk
Mungkin ini kasus tepi tetapi mudah-mudahan ini membantu seseorang.
sumber
ketika saya memberi tanpa awalan http / http dalam pengaturan proxy npm gagal bahkan ketika host proxy dan port adalah nilai yang benar. Ini bekerja hanya setelah menambahkan awalan protokol.
sumber
Cukup buka terminal baru dan ketik
npm config edit
dannpm config -g edit
. Setel ulang ke default. Setelah terminal tutup itu, buka yang baru dan ketiknpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
jika Anda perlu menambahkan secara global-g
.Ini bekerja untuk saya, semoga ini akan berhasil untuk Anda :)
sumber