npm ไม่ทำงาน -“ อ่าน ECONNRESET”


164

ฉันมีปัญหากับ NPM ฉันไม่สามารถติดตั้งอะไรได้เลย นี่คือข้อความแสดงข้อผิดพลาด:

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

ความคิดใดว่าเป็นเพราะเหตุใด นี่คือการตั้งค่าเครือข่ายของฉันและดูเหมือนว่าฉันไม่มีการกำหนดค่าพร็อกซี ฉันยังปิดการใช้งานไฟร์วอลล์ทั้งหมด

ป้อนคำอธิบายรูปภาพที่นี่


คุณสามารถไปที่หน้านี้ในเบราว์เซอร์registry.npmjs.org/yo ?
thefourtheye

ดูเหมือนว่าใบรับรอง SSL ของพวกเขาหมดอายุ!
Kushagra ได้รับ

@thefourtheye ใช่ฉันสามารถไปที่ลิงก์นั้น
โอมาร์

NPM ไม่ได้ติดตั้งอะไรเลย ปัญหานี้ไม่ได้เฉพาะในการติดตั้งด่วน
โอมาร์

คุณอาจต้องตรวจสอบ C: \ Windows \ system32 \ npm-debug.log ไฟล์นี้จะมีข้อมูลที่ถูกต้องมากขึ้นเพื่อแก้ไขปัญหาของคุณ
Nanda Kumar

คำตอบ:


327

ใช้

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

เพื่อให้การร้องขอ NPM สำหรับhttpURL httpsแทน

จากนั้นลองnpm installคำสั่งเดียวกัน


19
คุณได้โปรดให้คำอธิบายด้วยมันจะมีประโยชน์มาก
Rishul Matta

31
"แก้ไข" นี้มีความอ่อนไหวต่อการโจมตีจากคนกลาง ฉันจะไม่ใช้สิ่งนี้เพื่อการผลิต
thesmart

3
ปัญหาอาจเกิดจากการที่คุณถูกบล็อคไปยังเว็บไซต์นั้นโดย ISP ของคุณหรือไฟร์วอลล์ / พร็อกซีของ บริษัท การใช้วิธีการด้านบนนั้นรวดเร็วและง่ายขึ้น แต่ก็ไม่ปลอดภัยเนื่องจากไม่ได้ยืนยันว่าคุณเชื่อมต่อกับเว็บไซต์ที่ถูกต้อง หากต้องการตรวจสอบว่าคุณถูกบล็อกหรือไม่ให้ไปที่registry.npmjs.orgในเบราว์เซอร์ของคุณ คุณควรได้รับข้อความกลับมา
Marlon

1
ฮ่าฮ่า .... ฉันพยายามผ่านพ้นช่วงนี้มาหลายเดือนแล้ว ฉันเพิ่งจะปิดการใช้งาน VPN คว้าแพคเกจแล้วเข้าสู่ระบบอีกครั้ง ขอบคุณสำหรับสิ่งนี้. อื่น ๆ ทั้งหมดปัญหาคือที่อยู่พร็อกซี / พอร์ตของคุณผิดหรือ (ในกรณีนี้) พร็อกซีของคุณไม่ได้รับการกำหนดค่าให้รับฟังการรับส่งข้อมูล HTTPS
voidzero

1
ฉันรู้ว่ามันอาจจะไม่ปลอดภัย แต่เกิดขึ้น - ฉันลองทุกอย่างเพื่อกำจัดข้อผิดพลาด ECONNRESET ในขณะที่สร้างแอป Angular 4 ใหม่ผ่าน Angular CLI และโซลูชันนั้นใช้งานได้เท่านั้น หลังจากสร้างโครงการใหม่คุณสามารถเปลี่ยนกลับเป็น https อย่างไรก็ตาม @mithunsatheesh ขอบคุณอีกครั้ง
born2fr4g

38

คุณอาจต้องการตรวจสอบการตั้งค่าพร็อกซี NPM ของคุณและอาจลบออก

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

หนึ่งอาจคาดหวังว่าการติดตั้งใหม่ของ NodeJS + NPM จะไม่มีการกำหนดค่าพร็อกซี พอมาถึงแล้ว Mine ก็มาพร้อมกับพร็อกซีที่กำหนดโดยชี้ไปที่ IP และพอร์ต 3128 การลบพร็อกซีนั้นเป็นการหลอกลวง


ฉันพยายามติดตั้ง jquery ในโปรเจค Angular โดยใช้ cmd - npm install jquery แต่มีข้อผิดพลาดของพร็อกซีซึ่งตอนนี้ได้รับการแก้ไขเมื่อพยายามแก้ไขปัญหานี้
โมฮัมเหม็ดอาเมน

15

คุณอาจต้องระบุพร็อกซีเซิร์ฟเวอร์ / พอร์ตในบางสภาพแวดล้อมการตั้งค่าระบบสำหรับพร็อกซีนั้นไม่เพียงพอสำหรับการใช้งาน npm

    npm config set proxy "http://your-proxy.com:80"

11

ลบการตั้งค่าพร็อกซีของคุณที่บ้านและเปิดที่เครือข่าย Office ซึ่งอาจทำให้เกิดความรำคาญ แต่มันใช้งานได้สำหรับฉัน:

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

และ

npm config rm proxy   
npm config rm https-proxy

บิตสุดท้ายใช้งานได้สำหรับฉัน - ฉันตรวจสอบไฟล์. npmrc ของฉันแล้วและ https proxy เก่ายังคงอยู่หลังจากลบพร็อกซี
Jayx

สิ่งนี้ใช้งานได้ แต่จะยกเลิกการกำหนดค่าหรือกำหนดค่าใหม่เป็นค่าเริ่มต้นเมื่อใดก็ตามที่ไปที่เครือข่ายอื่นโดยไม่ใช้พรอกซี
DV Yogesh

9

ปัญหานี้อาจเกิดจากการติดตั้งสิ่งใดก็ตามที่ใช้ npm sudoซึ่งทำให้ไฟล์ในแคชเป็นของรูทซึ่งทำให้เกิดปัญหานี้ คุณสามารถแก้ไขได้โดยเรียกใช้:

sudo rm -rf ~/.npm

เพื่อลบแคช จากนั้นลองทำสิ่งที่คุณทำอีกครั้งเพื่อให้แน่ใจว่าคุณไม่เคยใช้sudoพร้อมกับnpm(หรือปัญหาอาจกลับมา)

ข้อมูลเพิ่มเติมมากมาย: ข้อผิดพลาด npm เกิดข้อผิดพลาดโดยไม่มี sudo


ลืมเกี่ยวกับการต้องการยกระดับเป็นผู้ดูแลระบบเพื่อดำเนินการnpm -g update(เหมือนที่ฉันทำเพื่อติดตั้ง) ขอบคุณ
จอร์จ

6
สาเหตุนี้ECONNRESETเป็นอย่างไร คุณถูกที่sudoสามารถทำลายสิ่งต่าง ๆ ด้วยวิธีแปลกใหม่ แต่การทำให้เซิร์ฟเวอร์รีจิสตรีทำการเชื่อมต่อไม่น่าเชื่อ
zigg


3

สามสิ่งที่จะทำให้ npm ทำงานได้ดีภายในเครือข่ายพรอกซี

ตั้งค่ารีจิสทรี npm ตามค่าเริ่มต้นอาจใช้ https

กำหนดค่ารีจิสทรี npm config " http://registry.npmjs.org/ "

ประการที่สองคือสองชุดพร็อกซีในระบบของคุณ หากองค์กรของคุณใช้พรอกซีหรือคุณ

การกำหนดค่าพร็อกซี npm config " http: // ชื่อผู้ใช้: รหัสผ่าน @ proxy-url: proxy-port "

การกำหนดค่า npm config https-proxy " http: // ชื่อผู้ใช้: รหัสผ่าน @ proxy-url: proxy-port "

นอกจากนี้คุณยังสามารถตรวจสอบว่าพวกเขามีการตั้งค่าหรือไม่โดย

การกำหนดค่า npm จะได้รับ https-proxy

สำหรับค่าทั้งหมด


มันไม่ได้แสดงให้ฉันเห็นข้อผิดพลาดใด ๆ แต่การติดตั้งติดอยู่ที่บรรทัด - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
RSB

นี่เป็นปัญหาอื่น ปัญหาพร็อกซีของคุณได้รับการแก้ไขแล้ว พฤษภาคมสั้น ๆ นี้สิ่งที่คุณstackoverflow.com/questions/40874237/...
Himanshu sharma

2

ฉันลองใช้วิธีเกือบทั้งหมดโพสต์ที่นี่และในหน้าอื่น ๆ แต่ไม่ได้ ต่อไปนี้เป็นคำสั่งที่ฉันสั่งให้คุณลองใช้เพราะมันใช้ได้กับหลาย ๆ คน (แต่ไม่ใช่ฉัน):

  • npm config rm proxy
  • npm config rm https-proxy
  • npm config set https-proxy https://username:password@proxy.company.com:6050
  • npm config set proxy http://username:password@proxy.company.com:6050
  • npm config set registry http://registry.npmjs.org/

จากนั้นพยายามติดตั้งแพคเกจnpm install -g expressแต่มันล้มเหลว

อย่างไรก็ตามเมื่อฉันพยายามที่จะเรียกใช้npm install npm@latest -gมันดำเนินการอย่างน่าอัศจรรย์และติดตั้งได้ดี!
จากนั้นวิ่งnpm install -g expressอีกครั้งก็ทำงานได้ดีอย่างสมบูรณ์เช่นกัน

TL; DR : การอัปเดต npm เป็นเวอร์ชันล่าสุดแก้ปัญหาได้ (ปัจจุบัน 6.0.1)


1

ที่ทำงานฉันต้องโหลดเบราว์เซอร์ของฉันและเรียกดูเว็บเพจ (ซึ่งรับรองความถูกต้องให้ฉันกับตัวกรองเว็บของเรา) จากนั้นฉันลองคำสั่งอีกครั้งและทำงานได้สำเร็จ


2
ไม่แน่ใจ 100% ว่านี่คือสิ่งที่ช่วยฉันหรือเป็นเรื่องบังเอิญ แต่ไปที่registry.npmjs.orgใน Firefox ช่วยติดตั้ง npm ในครั้งต่อไป ฉันไม่มีซอฟต์แวร์ตัวกรองเว็บใด ๆ
TalkLittle

1

นี่เป็นคำถามเก่า แต่ต่อไป

ฉันมีปัญหานี้เมื่อฉันพยายามปรับใช้กับ heroku และการแก้ไขที่ใช้งานได้สำหรับฉันคืออัปเดตnpmเวอร์ชันที่ใช้ ฉันมีรุ่น 2.xx และฉันปรับปรุงเป็น 3.xx


1

คุณอาจพบข้อผิดพลาดนี้หากคุณมีโทเค็นผู้ถือที่บันทึกไว้ซึ่งตอนนี้ไม่ถูกต้อง ฉันพบสิ่งนี้เมื่อใช้ repo ส่วนตัวที่บัญชีถูกเช็ดและรีเซ็ตทำให้โทเค็นไม่ถูกต้อง แม้ว่า repo ของคุณอาจไม่ต้องการการรับรองความถูกต้องหากคุณมีโทเค็นจากการเข้าสู่ระบบก่อนหน้านี้จะถูกส่งผ่านและหากการเชื่อมต่อของคุณไม่ถูกต้อง

คุณสามารถแก้ไขปัญหานี้ได้ด้วยการลงชื่อเข้าใช้อีกครั้งด้วยชื่อผู้ใช้และรหัสผ่านใหม่หรืออาจเพียงแค่ออกจากระบบผ่านทาง npm


1

ฉันไม่ต้องการเปลี่ยนไปใช้ http สำหรับรีจิสทรีสิ่งที่ใช้ได้ผลสำหรับฉันคือการลดระดับรุ่นโหนดล่าสุดเป็นรุ่น LTS (จนถึงตอนนี้ 6.x)


1

ฉันมีปัญหากับการโยนข้อผิดพลาดนี้

ดังนั้นโดยทั่วไปเมื่อมีข้อผิดพลาดถูกโยนฉันทั้งใช้คู่มือการติดตั้ง
จากคอมไพล์หรือรอและติดตั้งรุ่นที่ระบุเช่น:

npm install resolve@^1.1.6

เมื่อทำงานคนเดียว:

npm install resolve

ไม่ทำงาน

ฉันอัปเดต node.js ตั้งแต่ 7 ถึง 8 และการติดตั้ง npm เป็นไปอย่างราบรื่น

ฉันคิดว่าบางทีเวอร์ชัน 7 อาจทำให้เกิดปัญหานี้เนื่องจาก@luschnปรับลดรุ่นเป็น 6 ดังนั้นเขาจึงไม่ใช้ 7 ด้วย

บางทีตัวรีจิสตรีเองก็กลับมาผิดพลาดโดยไม่แสดงปัญหาบนหน้าสถานะเพราะหลังจากนั้นไม่นานฉันก็สามารถติดตั้งแพ็คเกจนี้ได้และจากนั้นnpm installทำการติดตั้งที่เหลือ


1

ฉันมีปัญหาเดียวกันบนเครือข่ายในบ้านของฉันโดยไม่ใช้พรอกซี คำตอบอื่น ๆ ในหัวข้อนี้ไม่ได้ผลสำหรับฉัน สิ่งที่ฉันทำคือการใช้yarnซึ่งสามารถใช้แทนกันได้กับnpm:

yarn add

จนถึงทุกวันนี้ฉันไม่รู้ว่าทำไมเวลาของฉันยังไม่ทำงาน ฉันรู้ว่ามันเป็นปัญหากับ Wi-Fi ของฉันเพราะเมื่อฉันเชื่อมต่อกับอินเทอร์เน็ต LTE ที่ออกอากาศจากสมาร์ทโฟนของฉันก็ใช้npm installงานได้อีกครั้ง อาจมีบางสิ่งเกี่ยวกับการตั้งค่าเราเตอร์ (ปัญหาเริ่มต้นเมื่อฉันอัพเกรดความเร็วอินเทอร์เน็ตและผู้ปฏิบัติงาน ISP แทนเราเตอร์เครื่องเก่าด้วยใหม่)


1

ฉันมีปัญหาเดียวกันเมื่อพยายามที่จะใช้npmในระบบเทิดทูนในออราเคิล VirtualBox ฉันแก้ไขได้โดยเพิ่มที่อยู่ Google DNS ในคุณสมบัติ Network Adapter

คุณสมบัติของเครือข่ายอะแดปเตอร์> IPv4 คุณสมบัติ> ที่อยู่ DNS 8.8.8.8ที่ต้องการ:


1

ฉันมีปัญหาเดียวกัน แต่ไม่มีวิธีแก้ปัญหาเหล่านี้ทำงานอย่างถูกต้อง ในที่สุดฉันได้ติดตั้งแพ็คเกจผ่านทางเส้นด้ายซึ่งเข้ากันได้กับ NPM ตามเว็บไซต์ทางการ:

การย้ายจาก npm ควรเป็นกระบวนการที่ค่อนข้างง่ายสำหรับผู้ใช้ส่วนใหญ่ Yarn สามารถใช้รูปแบบ package.json เดียวกับ npm และสามารถติดตั้งแพ็คเกจใดก็ได้จากรีจิสทรี npm

เพียงติดตั้งไหมพรมแล้วเรียกใช้การติดตั้งโดยใช้คำสั่งต่อไปนี้เทียบเท่ากับnpm installในไหมพรม:

yarn install

อ่านเพิ่มเติม AT- เส้นด้าย: การโอนย้ายจาก NPM



1

ฉันมีปัญหาเดียวกันใน windows ขณะติดตั้งแพคเกจใด ๆ จาก npm แก้ไขว่าด้วย - ** พรอมต์คำสั่งเปิดในฐานะผู้ดูแลระบบและรัน 3 คำสั่งเหล่านี้ ** /

1. npm config rm proxy

2. npm config rm https-proxy

3. npm ติดตั้ง npm @ latest -g

สำหรับ MAC / LINUX
1. sudo npm config rm proxy

2. sudo npm config rm https-proxy

3. sudo npm install npm @ latest -g

โดยทั่วไปนี่คือเวอร์ชัน isuue กับ npm โปรดตรวจสอบความกังวล



1

ไฟร์วอลล์ บริษัท ของเราจะหยุดการติดตั้งโหนดดังนั้นจึงเชื่อมต่อกับเครือข่ายส่วนบุคคลและติดตั้งมันใช้งานได้สำหรับฉัน


1

ฉันพบ "แก้ไขการกำหนดค่า npm" เพื่อเป็นประโยชน์ในการอัปเดตรายการสำหรับ https-proxy, proxy, registry

ฉันทำอะไรแบบนี้

  • รายการกำหนดค่า npm
  • แก้ไขการกำหนดค่า npm (เปิดใน vi)
  • แก้ไขหรือตั้งค่ารายการกำหนดค่าสำหรับ https-proxy, proxy, registry
  • ติดตั้ง NPM

1

ในกรณีที่ ... เพียงแค่พยายามอีกครั้งทำงานให้ฉัน มันอาจจะเป็นเพียงแค่จะเป็นปัญหาการเชื่อมต่อชั่วคราว


1

หากคุณใช้ Windows คุณควรติดตามการตั้งค่าระบบขั้นสูงเพื่อตรวจสอบ env vars ที่ประกาศไว้ที่นั่นคุณควรสังเกตว่าการกำหนดค่าพร็อกซีอาจอยู่ในตัวแปรสภาพแวดล้อมเช่นในภาพด้านล่าง:

Windows env vars

ดังนั้นหากพร็อกซีเซิร์ฟเวอร์ของคุณไม่พร้อมใช้งานหรือปิดกั้นการรับส่งข้อมูลจาก npm คุณอาจสังเกตเห็นข้อผิดพลาดดังกล่าวในหัวข้อนี้ บางทีคุณอาจไม่ต้องการพร็อกซีใด ๆ เลยในกรณีนี้ให้ลบตัวแปร env HTTP_PROXY นี้

ฉันได้ปิดการกำหนดค่าพร็อกซีทั้งหมดในการตั้งค่า Windows และ npm ของฉันอย่างไรก็ตาม npm ยังคงได้รับข้อผิดพลาดการหมดเวลาและการเชื่อมต่อขณะดาวน์โหลดทรัพยากรจากนั้นฉันก็พบว่ายังมีการกำหนดค่าพร็อกซีไว้บนตัวแปร env ซึ่งทำให้เกิดปัญหาทั้งหมด



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.