การติดตั้ง Npm ไม่สามารถหาโมดูล 'semver'


197

ฉันไม่สามารถใช้การnpm installใช้พรอมต์คำสั่งใน NodeJS ฉันได้รับข้อผิดพลาดเหล่านี้เมื่อทำงานnpm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

4
ฉันมีปัญหาเดียวกันอีกวิธีหนึ่งคุณสามารถใช้ไหมพรมแทนการใช้เวลา npm
Wojciech Maślanka

1
คุณใช้ไหมพรมเพื่อติดตั้ง package.json หรือไม่?
anandharshan

1
เพิ่งติดตั้งใหม่ npm
Nuno Ferro

แตกต่างกัน แต่อาจเกี่ยวข้อง: /programming/53545800#62740853 - เป็นประโยชน์หรือไม่
Henke

คำตอบ:


405

ฉันมีข้อผิดพลาดเดียวกัน npm uninstall npm -g, ไม่ได้ช่วยฉันเพราะเมื่อฉันพยายามที่ผมได้รับrm -rf node_modules Error: Cannot find module 'semver'แต่ฉันแก้ปัญหาด้วยขั้นตอนเหล่านี้ (จะเป็นการลบโมดูลอื่น ๆ ที่คุณอาจใช้):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

หวังว่านี่จะช่วยให้ผู้ที่ได้รับปัญหาที่คล้ายกัน


3
ใช้สิ่งนี้กับเครื่องที่ต่างกันสองตัวที่ใช้ El Capitan ทำงานทั้งสองกรณี
Kamikaze Rusher

7
ใช้brew uninstall --force nodeเพื่อลบทุกรุ่น
ลบ

5
เพียงติดตั้ง npm อีกครั้ง curl -0 -L https://npmjs.org/install.sh | sudo shหลังจากลบโฟลเดอร์ npm
Baryon Lee

17
ถ้าติดตั้งเส้นด้ายไว้แล้วbrew uninstall --ignore-dependencies nodeทำงานให้ฉันในที่ที่brew uninstall --force nodeไม่ได้ทำงาน
Maxime Lafarie

13
เป็นความผิดของฉันสำหรับคำสั่งการวางสุ่มสี่สุ่มห้า แต่sudo rm -rf /usr/local/lib/node_modulesทำให้ฉันสูญเสียโมดูลทั่วโลกที่ฉันใช้เช่นเซิร์ฟเวอร์อึกและซีลีเนียม เบื่อหน่ายกับสิ่งนี้
AmmarCSE

84

ฉันกำลังเผชิญกับปัญหาเดียวกันที่นี่

หากเกิดขึ้นทันทีหลังจากที่คุณเรียกใช้brew install yarnลองใช้yarn global add npmและvoilà - แก้ไข!


2
วิธีนี้ใช้ได้ดีสำหรับฉันและง่ายกว่าตัวเลือกอื่น ๆ ที่นี่ ฉันคิดว่าเส้นด้ายสามารถทำให้ยุ่งเหยิง npm หากการติดตั้งได้รับสิทธิ์ / ข้อผิดพลาดการเข้าถึงในระหว่างการอัพเกรด / ติดตั้ง
Slbox

53

บน MS Windows ทางออกคือการลบ%APPDATA%\npmและติดตั้งใหม่node


ฉันหวังว่าฉันจะเพิ่มคะแนนโหวตนี้เป็นสองเท่าสำหรับ Windows มี gotcha: ไดเรกทอรี AppData ถูกซ่อนไว้ตามค่าเริ่มต้นดังนั้นฉันไม่คิดว่ามันติดตั้งจริงที่ตำแหน่งนี้
ริงโก้

7
บน windows เพียงซ่อมแซมไม่จำเป็นต้องติดตั้งใหม่
MotKohn

2
@MotKohn Repaire อะไร ขา? กระดูก? รถ? "ซ่อมแซม" อะไรนะ!
samayo

2
@samayo บน Windows ที่คุณติดตั้งมีตัวเลือกการซ่อมแซม ขออภัยนี่เป็นความคิดเห็นตามบริบท
MotKohn

2
วิธีนี้ใช้ได้กับแล็ปท็อป Windows 8.1 Enterprise 64 บิตของฉัน ฉันต้องลบทั้ง "npm" รวมถึงโฟลเดอร์ "npm-cache" ตามด้วยการถอนการติดตั้งและการติดตั้งโหนดใหม่
Eddie

46

ฉันมีสิ่งนี้เช่นกันหลังจากทำงานbrew install yarnเมื่อวานนี้ อย่างน้อยทุกอย่างก็ดีขึ้นจนแล้ว

ฉันวิ่งrm -rf node_modulesและพยายามติดตั้งใหม่ แต่ไม่มีnpmคำสั่งใดทำงาน

ในที่สุดฉันก็ใช้ขั้นตอนที่ค่อนข้างง่ายในการติดตั้ง Node ผ่านทางการติดตั้ง Node อย่างเป็นทางการสำหรับ Mac OS X

https://nodejs.org/en/download/

ตอนนี้ทุกอย่างเรียบร้อยดี เพิ่งกลับไปที่ไดเรคทอรีnpm installแล้วมันก็ทำเคล็ดลับ


npm installทำเพื่อฉัน ฉันกำลังติดตั้งการอ้างอิงทั้งหมดทีละรายการ แต่npm installทำทั้งหมดในครั้งเดียว ขอบคุณ
tazboy

3
ฉันมีสิ่งนี้เกิดขึ้นกับฉันหลังจากbrew install yarn
วอลเตอร์มาร์ตินวาร์กัส - เพน่า

1
ติดตั้ง node.js อย่างง่ายจากโปรแกรมติดตั้ง osx อย่างเป็นทางการช่วย ขอบคุณ!
โรมัน

มันเกิดขึ้นกับฉันหลังจากbrew install yarnเช่นกัน !! สิ่งที่ห่า, เส้นด้าย
movac

23

บนArch Linuxสิ่งที่หลอกลวงสำหรับฉันคือ:

sudo pacman -Rs npm
sudo pacman -S npm

1
ฉันต้องใช้sudo pacman -Rddเพื่อลบการเพิกเฉยต่อการพึ่งพา แต่ก็ไม่ได้แก้ปัญหาสำหรับฉัน การติดตั้ง semver จาก arch package ในคำตอบของ Mathias Braun
Pierre-Alexis Ciavaldini


8

ที่จริงแล้วมันคือการอ้างอิงของโมดูลที่เก็บไว้ก่อนหน้านี้

โซลูชัน: ลบโฟลเดอร์ npm-cache / npm ในไดเร็กทอรีการติดตั้งของ nodejs ใน windows จะอยู่ใน C: / User / Username / Appdata / Roaming / npm (หรือ npm_cache) และลองติดตั้งอีกครั้ง

สิ่งเดียวกันที่ต้องทำในระบบปฏิบัติการใด ๆ


แค่นั้นแหละ. ฉันถอนการติดตั้งโหนด จากนั้นทั้งสองที่ถูกลบnpmและจากnpm_cache /Appdata/Roamingจากนั้นติดตั้งโหนดอีกครั้ง ดูเหมือนว่าจะมีการตำหนิแคช
Saulius

7

ในกรณีของฉันบน macOS (10.13.6) เมื่อฉันดำเนินการคำสั่งต่อไปนี้

npm install -g react-native-cli

ฉันได้รับข้อผิดพลาดนี้

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

ข้อผิดพลาดได้รับการแก้ไขหลังจากดำเนินการคำสั่ง

yarn global add npm

เสนอโดย @Ashoor


5

สำหรับฉันสิ่งนี้เกิดขึ้นหลังจากฉันติดตั้งเส้นด้ายไปทั่วโลก หากต้องการแก้ไขปัญหานี้ให้ติดตั้ง npm โดยใช้เส้นด้ายและเสร็จสิ้น

yarn global add npm


2

ฉันมีปัญหาเดียวกัน แต่เกิดจากpackage-lock.jsonไฟล์เสีย

การลบpackage-lock.jsonและการทำงานnpm installอีกครั้งแก้ไขให้ฉัน


2

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

เพื่อแก้ไขลบ node_modules npm installและอีกครั้งวิ่ง จากนั้นก็gulpวิ่งได้ดี


1

เพียงลบโฟลเดอร์ / node_modules แล้วลองอีกครั้ง ;)

คุณสามารถใช้npm rmเพื่อลบมัน

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

ถอนการติดตั้ง

น่าเศร้าที่เห็นคุณไป

sudo npm uninstall npm -gหรือถ้ามันล้มเหลว

sudo ทำการถอนการติดตั้งถอนการติดตั้งที่รุนแรงมากขึ้น

โดยปกติคำแนะนำข้างต้นก็เพียงพอแล้ว นั่นจะลบ npm แต่ทิ้งทุกสิ่งที่คุณติดตั้งไว้

หากคุณต้องการลบแพ็กเกจทั้งหมดที่คุณติดตั้งคุณสามารถใช้คำสั่ง npm ls เพื่อค้นหาแพ็กเกจจากนั้น npm rm เพื่อลบแพ็กเกจ

หากต้องการลบ cruft ทิ้งไว้โดย npm 0.x คุณสามารถใช้ไฟล์สคริปต์ clean-old.sh คุณสามารถเรียกใช้ได้อย่างสะดวกดังนี้:

npm สำรวจ npm -g - sh สคริปต์ / clean-old.sh npm ใช้ไฟล์กำหนดค่าสองไฟล์หนึ่งไฟล์สำหรับการกำหนดค่าต่อผู้ใช้และอีกไฟล์หนึ่งสำหรับการกำหนดค่าส่วนกลาง (ผู้ใช้ทุกคน) คุณสามารถดูได้โดยทำ:

npm config รับ userconfig # ค่าเริ่มต้นเป็น ~ / .npmrc npm config รับค่า globalconfig # ค่าเริ่มต้นเป็น / usr / local / etc / npmrc / etc / npmrc การถอนการติดตั้ง npm จะไม่ลบไฟล์การตั้งค่าตามค่าเริ่มต้น คุณต้องลบมันเองถ้าคุณต้องการให้มันหายไป โปรดทราบว่านี่หมายความว่าการติดตั้งในอนาคตจะไม่จดจำการตั้งค่าที่คุณเลือก


อัปเดตคำตอบของฉัน ลองเลย หากไม่ได้ผลให้ทดสอบบางอย่างสำหรับฉัน คัดลอก package.json ไปยังโฟลเดอร์อื่นและลองใช้การติดตั้ง npm
Rodmentou

1
คุณช่วยวาง package.json ของคุณได้ไหม
Rodmentou

{"name": "workspace", "version": "0.0.0", "private": true, "สคริปต์": {"start": "node ./bin/www"}, "dependencies": {" body-parser ":" ~ 1.13.2 "," bson ":" ^ 0.2.22 "," cookie-parser ":" ~ 1.3.5 "," debug ":" ~ 2.2.0 "," express " : "~ 4.13.1", "hbs": "~ 3.1.0", "พระ": "^ 1.0.1", "morgan": "~ 1.6.1", "เสิร์ฟ -favicon": "~ 2.3 .0 "},"
เอ็นจิ้น

คุณพยายามเรียกใช้การติดตั้ง npm ด้วย package.json ในโฟลเดอร์อื่นหรือไม่?
Rodmentou

ฉันต้องถอนการติดตั้งไปที่ node.js หลังจากติดตั้ง node.js .... ฉันต้องสร้างตัวอย่างแอปพลิเคชันโดยใช้เวลาเฉลี่ยฉันต้องติดตั้งคำสั่ง intall npm แต่ฉันได้รับข้อผิดพลาดเดียวกัน ... โปรดแก้ปัญหาให้ ฉัน ....
user2447562

1

ในที่สุดฉันก็พบสิ่งนี้! ใช่คุณต้องถอนการติดตั้ง / ลบไฟล์ทั้งหมดและติดตั้งใหม่ แต่บางรูปแบบไฟล์นั้นนานเกินไปที่จะลบในระหว่างกระบวนการติดตั้ง เส้นทางของไฟล์มีความยาวใน Node ซึ่งอาจไม่สามารถลบได้ คุณต้องเปลี่ยนชื่อพา ธ ไฟล์

หลังจากถอนการติดตั้งโหนดให้ใช้ Command Prompt นำทางไปที่ ... \ Appdata \ roaming \ (ใช้เส้นทางจากข้อความแสดงข้อผิดพลาด) ลองลบโฟลเดอร์ด้วย del npm จากนั้นหากไม่อนุญาตให้คุณลบโฟลเดอร์ให้เริ่มเปลี่ยนชื่อโฟลเดอร์ในเส้นทางไฟล์ในข้อความแสดงข้อผิดพลาดถัดไปเป็น "a" หรือบางสิ่งบางอย่างสั้น ๆ คุณอาจต้องทำเช่นนี้กับหลาย ๆ โฟลเดอร์ตามเส้นทาง จากนั้นคุณควรจะสามารถลบ! จากนั้นติดตั้งโหนดใหม่อีกครั้งและควรจะทำงาน



0

ในกรณีของฉันเพียงแค่เรียกใช้อีกครั้งbrew install yarnแก้ไขปัญหาได้


0

ฉันประสบปัญหาเดียวกันหลังจากชงติดตั้งเส้นด้ายบน MacOs Sierra 10.12.6 ของฉัน (และการลองครั้งแรกของการติดตั้งจะลดลงหลังจากตั้งค่าการอัพเดทด้วยตัวเองด้วยข้อความ "Homebrew ต้องทำงานภายใต้ Ruby 2.3! คุณกำลังเรียกใช้ 2.0.0 (RuntimeError)" ดังนั้นฉันจึงเรียกใช้อีกครั้ง)

ดังนั้นฉันใช้ n manager เพื่อติดตั้งใหม่ npm

  • เปลี่ยนเป็นโหนดรุ่นอื่น (สำหรับเคสของฉันเป็น 8.0) โดยคำสั่ง "n" พร้อมพารามิเตอร์ว่าง
  • หรือติดตั้งใหม่โดย "n xxx" โดยที่ xxx หมายเลขเวอร์ชันโหนด (ฉันต้องการ 6.9.1)
  • ลบเวอร์ชันการทำงานโดย "n rm xxx" โดยที่ xxx หมายเลขเวอร์ชันโหนด ใช้ sudo ถ้าต้องการ
  • ติดตั้งเวอร์ชันการทำงานโดย "n xxx" โดยที่ xxx หมายเลขเวอร์ชันโหนด ใช้ sudo ถ้าต้องการ
  • เปลี่ยนไปเป็นโหนดที่ใช้งานได้ (ดูขั้นตอนแรกสำหรับการอ้างอิง)

ฉันคิดว่าปัญหาอาจเกิดจากการที่โหนดถูกติดตั้งภายใต้ sudo สำหรับกรณี


0

สำหรับผู้ใช้ Mac ฉันลองติดตั้งโหนดรุ่นใหม่ ๆ และถอนการติดตั้งอันอื่น ไม่ได้แก้ไข คุณต้องล้างการติดตั้งทั้งหมดของคุณให้เรียบร้อยก่อน ทำตามคำแนะนำเหล่านี้ ... ฉันจะถอนการติดตั้ง Node.js ได้อย่างไรและติดตั้งใหม่ตั้งแต่ต้น (Mac OS X)X)

จากนั้นดาวน์โหลดโหนดเวอร์ชันล่าสุด


0

ฉันมีปัญหาเดียวกันกับการติดตั้งบน AWS Linux ฉันต้องติดตั้งด้วยsudoผมได้มีการติดตั้งด้วยดังนั้นเพื่อหลีกเลี่ยงสิ่งนี้ฉันทำตามขั้นตอนที่ 3 จากบทความนี้ (เพื่อให้แน่ใจว่าได้รับโหนดรุ่นล่าสุด)

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

/home/aUser/nodeแต่การติดตั้งไปยังไดเรกทอรีบ้านของผู้ใช้ จากนั้นเพิ่มเส้นทางนั้นไปยังเส้นทางของฉัน

export PATH=/home/aUser/node/bin:$PATH

หลังจากนั้นฉันก็สามารถทำได้npm installโดยไม่มีปัญหา


0

ฉันประสบปัญหานี้ในขณะที่เปิดใช้งานโครงการบน CLI เวอร์ชันที่สูงกว่า ในการแก้ปัญหานี้คุณสามารถแสดงความคิดเห็นได้ที่ @ angular-devkit / build-angular module และคุณต้องติดตั้งใหม่อีกครั้ง

npm install @ angular-devkit / build-angular --save


0

ตรวจสอบให้แน่ใจว่าsemverได้ติดตั้งแล้ว:npm install -g semver


1
npm ไม่ทำงานดังนั้นคุณไม่สามารถติดตั้ง semver ถึง npm ทางออกที่ดีที่สุดคือการใช้ไหมพรมเพื่อติดตั้งแพคเกจ npm หรือแพ็กเกจที่ขาดหายไป
NFpeter

@NFpeter ฉันมีปัญหาตรงตามที่ระบุในคำถามและแก้ไขด้วยวิธีนี้ดังนั้น npm จึงทำงานได้ (ในกรณีของฉันอย่างน้อย)
Javarome

0

สำหรับฉันมันเกิดขึ้นขณะอัพเกรดเป็น gulp 4 จาก gulp 3 ในโครงการของฉัน ดังนั้นเมื่อฉันรันคำสั่ง "gulp watch" มันทำให้ฉันเกิดข้อผิดพลาดเหมือนกัน

อาจเป็นเพราะรุ่นไม่ตรงกันเมื่อเทียบกับอึกที่ติดตั้งทั่วโลกของฉัน

ดังนั้นการอัพเกรดอึกด้วยธงระดับโลก "-g" จะช่วยได้หรืออย่างอื่นฉันทำตามนี้ด้านล่าง

อย่างไรก็ตามฉันใช้ "./node_modules/.bin/gulp watch" ในโครงการของฉัน สิ่งนี้ทำให้มั่นใจได้ว่าการพึ่งพาทั้งหมดที่ความต้องการของอึกถูกนำมาจาก node_modules เท่านั้น


0

ตามที่ระบุไว้โดยไม่ระบุชื่อ (?) ที่ DeveloperReference.com ขั้นตอนด้านล่างแก้ไข "ไม่สามารถหาโมดูล 'semver'" สำหรับฉันเมื่อใช้ npm - ติดตั้ง:

* "ฉันทำตามขั้นตอนเหล่านี้และแก้ไขปัญหาการถอนการติดตั้ง Node.js

  1. ลบเนื้อหาของโฟลเดอร์ต่อไปนี้
    • C: \ Users \ {ชื่อผู้ใช้} \ AppData \ Roaming \ npm-cache
    • C: \ Users \ {ชื่อผู้ใช้ \ \ AppData \ Roaming \ npm
  2. C: \ Program Files \ nodejs จากนั้นติดตั้ง Node อีกครั้งจากhttps://nodejs.org/en/ "*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+When+installing+Npm


-1

เพียงตรวจสอบสคริปต์ที่ติดตั้งล่วงหน้าหากคุณมี บางครั้งเพื่อ จำกัด รุ่นnodeและnpmหนึ่งจำเป็นต้องเรียกใช้โครงการ

หากเป็นกรณีนี้คุณต้องติดตั้งsemverด้วยตนเองผ่านnpm install -g semver


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