npm tidak berfungsi - “baca ECONNRESET”

164

Saya mengalami masalah dengan npm, saya tidak dapat menginstal apa pun. Ini pesan kesalahannya:

C:\Windows\system32>npm install -g yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm ERR! network read ECONNRESET
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settin
gs.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "yo"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.17
npm ERR! npm -v 1.3.8
npm ERR! syscall read
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

Ada yang tahu mengapa ini? Berikut adalah pengaturan jaringan saya dan sepertinya saya tidak memiliki proxy yang dikonfigurasi. Saya juga menonaktifkan semua firewall.

masukkan deskripsi gambar di sini

Omar
sumber
Apakah Anda dapat mengunjungi halaman ini di registry browser.npmjs.org/yo ?
thefourtheye
Tampaknya sertifikat SSL mereka kedaluwarsa!
Kushagra Gour
@thefourtheye Ya saya dapat mengunjungi tautan itu
Omar
NPM tidak menginstal apa pun. Masalah ini tidak eksklusif dalam menginstal express
Omar
Anda mungkin perlu memeriksa C: \ Windows \ system32 \ npm-debug.log, file ini akan memiliki informasi yang lebih akurat untuk menyelesaikan masalah Anda.
Nanda Kumar

Jawaban:

327

menggunakan

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

sehingga permintaan npm untuk httpurl bukan https.

dan kemudian coba npm installperintah yang sama

mithunsatheesh
sumber
19
dapatkah Anda memberikan penjelasan, itu akan sangat membantu.
Rishul Matta
31
"Perbaikan" ini rentan terhadap serangan man-in-the-middle. Saya tidak akan menggunakan ini untuk produksi.
smartphone
3
Masalahnya bisa dengan mudah Anda diblokir ke situs web itu oleh firewall / proxy Perusahaan atau ISP Anda. Menggunakan metode di atas lebih cepat dan mudah tetapi juga tidak aman karena tidak memverifikasi Anda terhubung ke situs web yang tepat. Untuk memeriksa apakah Anda diblokir cukup buka registry.npmjs.org di browser Anda. Anda harus mendapatkan beberapa teks kembali.
Marlon
1
haha .... Saya sudah berusaha untuk melewati ini dan selama berbulan-bulan. Saya baru saja menonaktifkan VPN, mengambil paket, lalu masuk kembali. Terima kasih untuk ini. Yang lainnya, masalahnya hanyalah alamat proxy / port Anda salah atau (dalam hal ini) proxy Anda tidak dikonfigurasi untuk mendengarkan lalu lintas HTTPS.
voidzero
1
Saya tahu itu mungkin tidak aman tetapi ayolah - Saya mencoba segala sesuatu untuk menghilangkan kesalahan ECONNRESET sambil membuat aplikasi sudut 4 baru melalui Angular CLI dan solusi itu hanya bekerja. Setelah membuat proyek baru, Anda dapat kembali ke https. Bagaimanapun @mithunsatheesh terima kasih sekali lagi.
born2fr4g
38

Anda mungkin ingin memeriksa pengaturan proxy NPM Anda dan mungkin menghapusnya.

npm config get proxy
npm config rm proxy
npm config rm https-proxy

Orang mungkin mengharapkan instalasi baru NodeJS + NPM tidak akan memiliki proxy yang dikonfigurasi. Anehnya, milik saya datang dengan proxy yang ditentukan, menunjuk ke IP dan port 3128. Menghapus proxy memang berhasil.

jiz
sumber
Saya mencoba menginstal jquery dalam proyek Angular menggunakan cmd - npm install jquery. Tetapi ada kesalahan proxy yang sekarang teratasi ketika mencoba solusi ini.
Mohammed Amen
15

Anda juga mungkin perlu menentukan server proxy / port, di beberapa lingkungan pengaturan sistem untuk proxy tidak cukup untuk npm berfungsi.

    npm config set proxy "http://your-proxy.com:80"
Dmitri Mogilevski
sumber
11

Hapus pengaturan proxy Anda di rumah dan aktifkan di jaringan Office, Ini mungkin menjengkelkan, Tapi itu berhasil untuk saya:

npm config set proxy http://xxx.xxx.xxx.4:8080   
npm config set https-proxy http://xxx.xxx.xxx.4:8080

dan

npm config rm proxy   
npm config rm https-proxy
Ignatius Andrew
sumber
Bit terakhir bekerja untuk saya - saya memeriksa file .npmrc saya dan proksi https lama masih ada setelah menghapus proksi
Jayx
ini berfungsi tetapi bagaimana cara mengkonfigurasi ulang atau mengkonfigurasi ulang ke default, setiap kali pergi ke jaringan lain tanpa proxy ??
DV Yogesh
9

Ini dapat disebabkan oleh menginstal apa pun dengan menggunakan npm sudo- ini menyebabkan file dalam cache dimiliki oleh root, yang mengakibatkan masalah ini. Anda dapat memperbaikinya dengan menjalankan:

sudo rm -rf ~/.npm

untuk menghapus cache. Kemudian mencoba apa pun yang Anda lakukan lagi, pastikan Anda tidak pernah menggunakan sudobersama dengan npm(atau masalah mungkin datang kembali).

Banyak informasi lebih lanjut: npm melempar kesalahan tanpa sudo

Kevin Cooper
sumber
lupa tentang perlu mengangkat ke Administrator untuk melakukan npm -g update(seperti yang saya lakukan untuk menginstalnya). Terima kasih.
George
6
Bagaimana penyebabnya ECONNRESET? Anda benar yang sudodapat memecahkan hal-hal dengan cara baru, tetapi menyebabkan server registri untuk memutuskan koneksi agak sulit dipercaya.
zigg
4

Restart PC saya membuatnya bekerja.

Gowtham
sumber
Sama di sini, +1 :)
Daniel Danielecki
3

Tiga hal untuk membuat npm bekerja dengan baik di dalam jaringan proxy.

Ini mengatur npm registry, Secara default mungkin diperlukan https.

config mengatur registrasi npm " http://registry.npmjs.org/ "

Kedua adalah dua set proxy di sistem Anda. Jika organisasi Anda menggunakan proxy atau Anda.

npm config set proxy " http: // nama pengguna: kata sandi @ proxy-url: proxy-port "

npm config set https-proxy " http: // nama pengguna: kata sandi @ proxy-url: proxy-port "

Anda juga dapat memeriksa apakah sudah diatur atau tidak, oleh

npm config dapatkan https-proxy

untuk semua nilai.

Himanshu sharma
sumber
Itu tidak menunjukkan kepada saya kesalahan, tetapi instalasi macet pada baris - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
RSB
Ini adalah masalah lain. Masalah proxy Anda terpecahkan. Semoga ini singkat hal Anda stackoverflow.com/questions/40874237/...
Himanshu sharma
2

Saya sudah mencoba hampir semua metode yang diposting di sini dan di halaman lain tetapi tidak berhasil. Berikut adalah perintah yang telah saya jalankan secara berurutan, yang saya anjurkan Anda untuk mencoba karena itu berhasil untuk banyak orang (tetapi bukan saya):

  • npm config rm proxy
  • npm config rm https-proxy
  • npm config set https-proxy https://username:[email protected]:6050
  • npm config set proxy http://username:[email protected]:6050
  • npm config set registry http://registry.npmjs.org/

Dan kemudian mencoba menginstal paket npm install -g express, tetapi gagal.

Namun, ketika saya mencoba menjalankannya npm install npm@latest -gsecara ajaib dieksekusi dan diinstal dengan baik!
Kemudian berlari npm install -g expresskembali bekerja dengan sangat baik.

TL; DR : memperbarui npm ke versi terbaru menyelesaikan masalah (saat ini 6.0.1)

Nuhman
sumber
1

Di tempat kerja, saya harus memuat browser saya dan menjelajahi halaman web (yang mengotentikasi saya ke filter web kami). Kemudian saya mencoba lagi perintah itu dan berhasil.

Helzgate
sumber
2
Tidak 100% yakin apakah ini yang membantu saya, atau hanya kebetulan, tetapi menavigasi ke registry.npmjs.org di Firefox entah bagaimana membantu npm menginstal pekerjaan di waktu berikutnya. Saya tidak memiliki perangkat lunak filter web apa pun.
TalkLittle
1

Ini adalah pertanyaan lama, tetapi bagaimanapun juga.

Saya memiliki masalah ini, ketika saya mencoba untuk menyebarkan ke heroku, dan perbaikan yang berhasil bagi saya adalah memperbarui npmversi yang digunakan. Saya memiliki versi 2.xx dan saya memperbarui ke 3.xx

Dimitris Karagiannis
sumber
1

Anda juga dapat menemukan kesalahan ini jika Anda memiliki token pembawa yang disimpan yang sekarang tidak valid. Saya pernah mengalami ini ketika menggunakan repo pribadi tempat akun dihapus dan direset, membatalkan token. Meskipun repo Anda mungkin tidak memerlukan otentikasi, jika Anda memiliki token dari login sebelumnya, itu akan diteruskan dan jika tidak valid koneksi Anda akan ditutup.

Anda dapat menyelesaikan ini dengan masuk kembali dengan nama pengguna dan kata sandi baru, atau mungkin dengan hanya keluar melalui npm.

Carth
sumber
1

Saya tidak ingin beralih ke http untuk registri, yang berhasil bagi saya adalah menurunkan versi dari Node terbaru ke versi LTS (seperti yang sekarang, 6.x).

Luschn
sumber
1

Saya punya masalah dengan npm melempar kesalahan ini.

Jadi pada dasarnya setiap kali kesalahan dilemparkan saya menggunakan instalasi manual
dari git atau menunggu dan menginstal versi yang ditentukan seperti:

npm install resolve@^1.1.6

saat berlari sendiri:

npm install resolve

tidak bekerja.

Saya memperbarui node.js dari 7 menjadi 8 dan instalasi npm berjalan dengan lancar.

Saya pikir mungkin versi 7 menyebabkan masalah ini karena @luschn diturunkan ke 6 sehingga dia tidak menggunakan 7 juga.

Mungkin registri itu sendiri mengembalikan kesalahan tanpa menunjukkan masalah pada halaman status mereka karena setelah beberapa waktu saya dapat menginstal paket yang melanggar ini dan kemudian melanjutkan dengan npm installmenginstal sisanya.

Mike
sumber
1

Saya memiliki masalah yang sama pada jaringan rumah lokal saya tanpa proxy. Jawaban lain di utas ini tidak berfungsi untuk saya. Apa yang akhirnya saya lakukan adalah menggunakan yarnyang dapat digunakan secara bergantian dengan npm:

yarn add

Sampai hari ini saya tidak tahu mengapa npm saya masih tidak berfungsi. Saya tahu pasti itu adalah masalah dengan Wi-Fi saya, karena ketika saya terhubung ke internet LTE yang disiarkan dari telepon pintar saya npm installberfungsi lagi. Mungkin ada hubungannya dengan pengaturan router (masalah dimulai ketika saya meningkatkan kecepatan internet saya dan pekerja ISP mengganti router lama saya dengan yang baru).

Celebes
sumber
1

Saya memiliki masalah yang sama ketika mencoba untuk menjalankan npmpada sistem yang ditiru di Oracle VirtualBox . Saya mengatasinya dengan menambahkan alamat Google DNS di properti Network Adapter.

Sifat Network Adapter> sifat IPv4> alamat Preferred DNS: 8.8.8.8.

Karol Trybulec
sumber
1

Saya memiliki masalah yang sama tetapi tidak ada solusi yang bekerja dengan benar. Akhirnya, saya telah menginstal paket melalui benang , yang kompatibel dengan npm. Sesuai situs web resmi:

Bermigrasi dari npm harus menjadi proses yang cukup mudah bagi sebagian besar pengguna. Benang dapat menggunakan format package.json yang sama dengan npm, dan dapat menginstal paket apa pun dari registri npm.

Cukup instal benang dan kemudian, jalankan instal dengan menggunakan perintah berikut, yang setara dengan npm installdi dalam benang:

yarn install

Baca lebih lanjut di— Benang: Bermigrasi dari npm .

Dariusz Woźniak
sumber
1

npm config rm proxy

npm config rm https-proxy

bekerja untukku!

samivic
sumber
1

Saya memiliki masalah yang sama di windows saat menginstal paket apa pun dari npm. Memperbaiki itu dengan - ** command prompt terbuka sebagai administrator dan jalankan 3 perintah ini ** /

1. npm config rm proxy

2. npm config rm https-proxy

3. npm instal npm @ latest -g

UNTUK MAC / LINUX
1. sudo npm config rm proxy

2. sudo npm config rm https-proxy

3. sudo npm instal npm @ latest -g

Pada dasarnya ini adalah versi isuue dengan npm. Silakan periksa kerjanya

Shivam Gupta
sumber
1

Firewall perusahaan kami akan berhenti menginstal simpul maka terhubung ke jaringan pribadi dan instal, itu bekerja untuk saya.

sahi
sumber
1

Saya menemukan "npm config edit" lebih bermanfaat untuk memperbarui entri untuk https-proxy, proxy, registry

Saya melakukan sesuatu seperti ini

  • daftar konfigurasi npm
  • npm konfigurasi edit (terbuka di vi)
  • Edit atau setel entri konfigurasi untuk https-proxy, proxy, registri
  • npm instal
Prasad Paravatha
sumber
1

Untuk berjaga-jaga ... hanya mencoba sekali lagi bekerja untuk saya. Itu bisa saja masalah koneksi sementara.

alexr101
sumber
1

Jika Anda menggunakan Windows, Anda harus menindaklanjuti Pengaturan Sistem Tingkat Lanjut untuk memeriksa env vars yang dideklarasikan di sana, Anda harus memperhatikan bahwa konfigurasi proksi mungkin ada di dalam variabel lingkungan, seperti pada gambar di bawah ini:

Windows env vars

Jadi jika server proxy Anda tidak tersedia atau memblokir lalu lintas dari npm, Anda mungkin melihat kesalahan yang disebutkan di topik ini. Mungkin Anda tidak memerlukan proxy sama sekali, dalam hal ini, hapus saja variabel env HTTP_PROXY ini.

Saya telah mematikan semua konfigurasi proxy di pengaturan Windows dan npm saya, namun, npm masih mendapatkan timeout dan kesalahan koneksi saat mengunduh sumber daya, kemudian saya menemukan masih ada konfigurasi proxy yang tersisa pada variabel env, yang menyebabkan semua masalah.

s_bighead
sumber