ไม่พบ npm-cli.js เมื่อรัน npm


95

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

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

ฉันดูในโฟลเดอร์:

C: \ Program Files \ nodejs \ node_modules \ npm \ bin \

แต่ไม่เห็นโฟลเดอร์node_modulesตามข้อผิดพลาดที่อธิบายไว้

ฉันลองค้นหาnpm-cli.js ด้วยและเห็นว่ามันอยู่ในC:\Program Files\nodejs\node_modules\npm\bin\


เมื่อคุณติดตั้งโหนด?
Mritunjay

1
ขออภัยฉันลืมติดตั้งโหนดใหม่เพื่อแก้ไขข้อผิดพลาดนี้จึงไม่มีโฟลเดอร์ node_modules ในขณะนี้ แต่ก่อนหน้านั้นฉันยังตรวจสอบ C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ แต่ไม่เห็นโฟลเดอร์ npm อยู่ในนั้น
user1192476

ฉันมีคำตอบสำหรับเรื่องนี้ จะโพสต์หลังจาก 8 ชั่วโมง ขอบคุณ.
user1192476

คำตอบ:


110

ปรากฎว่าปัญหาเกิดจากเส้นทางของโหนดในตัวแปรระบบไม่ถูกต้อง เส้นทางนี้ชี้ไปที่

(ไม่รู้ตอนแก้ไข)

C:\Program Files\nodejs\node_modules\npm\bin

ดังนั้นฉันจึงเปลี่ยนเป็น

C:\Program Files\nodejs

และทำงานได้อย่างมีเสน่ห์


16
มีปัญหาเดียวกัน ไม่เคยเปลี่ยนเส้นทางดังนั้นฉันเดาว่าสิ่งนี้จะต้องเกิดขึ้นเมื่อฉันอัปเกรด Node
Nils Magne Lunde

ฉันคิดว่าสำหรับฉันแล้วปัญหาเริ่มเกิดขึ้นเมื่อฉันติดตั้ง Electron :(
Charles Walker

4
คุณเปลี่ยนสิ่งนี้ที่ไหน ไฟล์อะไร
CodeToad

1
ตัวแปรสภาพแวดล้อม
Crozeta

ในเวอร์ชันล่าสุดหลังจากอัปเกรดคุณอาจเห็นทั้งสองเส้นทางบนตัวแปรสภาพแวดล้อมของคุณและเส้นทางเก่า (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) มีความสำคัญเหนือกว่าเส้นทางใหม่ (C: \ Program Files \ nodejs ). การลบอดีตช่วยแก้ปัญหาให้ฉันได้
Shahroq

47

คุณต้องเรียกใช้สิ่งนี้ในบรรทัดคำสั่ง

SET PATH=C:\Program Files\Nodejs;%PATH%

bash shell ใน windows
Prathap Kudupu

ฉันมีปัญหานี้เมื่อฉันอัปเกรดเวอร์ชันของโหนด โซลูชันของคุณได้ผลสำหรับฉันอย่างสมบูรณ์แบบ ฉันไม่ต้องลบnode_modulesโฟลเดอร์ใด ๆ
AllJs

1
ดีใจที่ได้ช่วยเหลือ
ประทีปกุฎุมพี

ฉันต้องย้ายเส้นทางนี้ขึ้นไปอีกเพื่อให้มีความสำคัญสูงกว่าหลังจากพยายามอัปเดต npm โดยใช้ npm (npm -i npm)
Corey Alix

26

นอกจากนี้คุณยังอาจมีปัญหานี้หากในเส้นทางของคุณคุณมีและC:\Program Files\nodejs C:\Program Files\nodejs\node_modules\npm\binลบหลังออกจากเส้นทาง


4
ในเส้นทางไหน?
CodeToad

20

ฉันเพิ่งซ่อมแซมการติดตั้ง NodeJS ของฉันและมันก็ใช้ได้สำหรับฉัน!

ไปที่Control Panel\All Control Panel Items\Programs and Features-> ค้นหาNodeJSและเลือกตัวเลือกการซ่อมแซมเพื่อซ่อมแซม หวังว่านี่จะช่วยได้


2
สิ่งนี้ใช้ได้ผลสำหรับฉัน แต่เรียกว่า "แอปและฟีเจอร์" บน windows 10
PeonProgrammer

ไม่มีโฟลเดอร์ npm ใน node_modules ในกรณีของฉันและสิ่งที่ฉันทำคือดำเนินการคำสั่งการnpm install expressซ่อมแซมช่วยได้
Lalit Fauzdar

ขอบคุณสำหรับสิ่งนี้! ปัญหาของฉันได้รับการแก้ไขหลังจากซ่อมแซม Nodejs ภายใต้ 'แอพและคุณสมบัติ' บนพีซี Windows ของฉัน!
missjcohen

ขอขอบคุณ! สิ่งนี้ช่วยฉันได้
isaace

18

คัดลอกไดเร็กทอรีที่ตั้งชื่อnpmจากพา ธ โหนดที่ติดตั้งของคุณ (ในกรณีของฉันไดเร็กทอรี npm มีอยู่ในC:\Program Files\nodejs\node_modules)

ไปที่C:\Users\%USERNAME%\AppData\Roaming\npm\node_modulesและวางnpmไดเร็กทอรีที่คัดลอกไว้ที่นั่น

วิธีนี้ใช้ได้ผลสำหรับฉันเมื่อฉันมีข้อผิดพลาดเดียวกัน . .


3
ขอบคุณสิ่งนี้ใช้งานได้ดีหลังจากการอัปเกรดทำให้การติดตั้ง NPM ของฉันยุ่งเหยิงและการซ่อมแซมและการติดตั้งใหม่ไม่สามารถแก้ไขได้
Slbox

ไฟล์ใดที่เราต้องการทำการเปลี่ยนแปลงโปรดชี้แนะ
Ibad Shaikh

14

กรณีนี้ไม่ใช่กรณีเดียวกับคำถาม แต่อาจเป็นประโยชน์สำหรับผู้ที่ประสบปัญหาในลักษณะเดียวกัน ใน Windows หากคุณเรียกใช้npmคำสั่งจากเครื่องมือ CI / automation คุณอาจพบข้อผิดพลาด:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

SOME_PATHไม่อยู่ที่ไหนProgram Files/...แต่มีไดเรกทอรีโครงการบางรายการแทน ดังนั้น npm จึงพยายามค้นหา npm-cli.js ภายในไดเร็กทอรี root ของโปรเจ็กต์แทนที่จะค้นหาในProgram Files/nodejsไฟล์.

เหตุผลคือสคริปต์ npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

สคริปต์นี้ใช้%~dp0เพื่อค้นหา npm-cli.js แต่เครื่องมืออัตโนมัติบางอย่างสามารถตั้งค่าไดเร็กทอรีงานในลักษณะที่%~dp0ชี้ไปที่ไดเร็กทอรีโปรเจ็กต์ภายในดังนั้นสคริปต์จึงทำงานไม่ถูกต้อง

ทางออกหนึ่งที่เป็นไปได้คือการเปลี่ยนการโทร npm จากสิ่งนี้

npm.cmd install

สำหรับสิ่งนี้

cmd.exe /c npm.cmd install

หากคุณต้องการตั้งค่า WorkingDirectory เพื่อรันคำสั่งติดตั้งในไดเร็กทอรีเฉพาะสิ่งนี้ไม่สามารถแก้ปัญหาได้
Daniel Fisher lennybacon

สิ่งที่ได้ผลสำหรับฉันคือเรียกใช้ไดเร็กทอรีการเปลี่ยนแปลงด้วยคำสั่ง npm หลังจากนั้น: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Program Files \ nodejs \ npm.cmd "ติดตั้ง
Daniel Fisher lennybacon

7

ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน

นี่คือสิ่งที่ฉันเขียน (ใน git bash shell บน windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman

7

ฉันพบปัญหาเดียวกันกับโหนด 8.5 เมื่อติดตั้งด้วย nvm วิธีแก้ปัญหาด้านล่างใช้ได้ผลสำหรับฉัน

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

สิ่งนี้ใช้ได้ผลสำหรับฉันทำให้โหนด 8.5 ไม่ได้รับการติดตั้งอย่างถูกต้องมาก่อนกับ nvm ฉันคิดออกว่าสาเหตุ "npm \ bin \ npm-cli.js" โฟลเดอร์และไฟล์ไม่ได้ถูกสร้างขึ้นภายใน node_modules มาก่อน


เส้นทางของฉันดูโอเค ถอนการติดตั้ง / ติดตั้งใหม่ช่วยแก้ปัญหาให้ฉันได้
Mark Maslar

ฉันมีปัญหาแปลก ๆ กับโหนดเก่าแม้ว่าฉันจะเปลี่ยนไปใช้เวอร์ชันใหม่กว่า ดังนั้นฉันจึงถอนการติดตั้งโหนดเก่าและติดตั้งใหม่อีกครั้ง ด้วยวิธีนี้ฉันได้แก้ไขปัญหาด้วย cli :) ขอบคุณ
Andrej Gaspar

6

บน Mac:

ฉันเรียกใช้สิ่งนี้จากปลั๊กอิน Maven com.github.eirslett Frontend เมื่อฉันมีข้อผิดพลาดเดียวกัน

ในที่สุดฉันก็ต้อง:

ติดตั้ง Node.js ผ่านตัวติดตั้งดาวน์โหลดที่นี่: http://nodejs.org/

ลบnode/และnode_modules/โฟลเดอร์ทั้งหมดจากภายในโครงสร้างการสร้าง maven ของฉัน


2
ดูเหมือนว่าสิ่งนี้ได้รับการแก้ไขด้วยปลั๊กอินส่วนหน้าเวอร์ชันใหม่: github.com/eirslett/frontend-maven-plugin/issues/147
Noremac

สำหรับฉันฉันต้องติดตั้งโหนดใหม่ ขอขอบคุณ!
ElDiabolo

5

นอกเหนือจากข้างต้นฉันต้องลบC:\Users\%USERNAME%\AppData\Roaming\npmด้วย สิ่งนี้ช่วยได้


1
ในระบบของฉันซึ่งเป็นที่ตั้งของแพ็คเกจทั่วโลก หากคุณลบออกจากเส้นทางคุณจะไม่สามารถวิ่งอึกได้อีกต่อไป ฯลฯ
TrueWill

5

อย่าเปลี่ยนตัวแปรสภาพแวดล้อมใด ๆ

เป็นตัวติดตั้งที่ทำให้เกิดปัญหาและไม่ได้ติดตั้งไฟล์ที่ต้องการทั้งหมด

ฉันเพิ่งซ่อมแซมการตั้งค่า NODEJS บน windows 7 และใช้งานได้ดีมาก คุณสามารถติดตั้งใหม่ได้ในกรณีที่มีบางอย่างไม่ทำงาน


4

มี 2 ​​เส้นทางที่ถูกเพิ่มลงในตัวแปรระบบของคุณเมื่ออัปเกรดเป็นเวอร์ชันล่าสุดของ nodejs
1. C: \ Program Files \ nodejs
2. C: \ Program Files \ nodejs \ node_modules \ npm \ bin
สำหรับผู้ใช้ windows 7/8 / 8.1 พวกเขาจะไม่มี GUI สมาร์ท GUI ของ Windows 10 ตัวแปรสภาพแวดล้อม
อย่างไรก็ตามสิ่งที่คุณต้องทำคือค้นหา"C:\Program Files\nodejs\node_modules\npm\bin"และลบออก
นอกจากนี้ให้ลบออก"C:\Users\%USERNAME%\AppData\Roaming\npm"จากตัวแปรสภาพแวดล้อมของคุณ ฉันโพสต์คำตอบนี้เพราะฉันเสียเวลา 10 ชั่วโมงในการค้นหาวิธีแก้ปัญหาบนอินเทอร์เน็ต โดยการรวมคำตอบข้างต้นในที่สุดฉันก็ผ่านปัญหาไปได้



2

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

การรีสตาร์ทพีซีอย่างง่ายบน Windows 10 ทำให้ฉันรู้สึกมหัศจรรย์!


ทำงานให้ฉันเช่นกัน! ข้อผิดพลาดอาจเกิดขึ้นหลังจากการอัปเดต Win10
Arno van Oordt


2

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

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

อย่างไรก็ตามเวอร์ชันที่ใหม่กว่าจำเป็นต้องเพิ่มสิ่งต่อไปนี้: -

C: \ Program Files \ nodejs

ฉันหมายถึงเส้นทางที่คุณติดตั้ง Nodejs ค่าเริ่มต้นคือ

C: \ Program Files \ nodejs

อย่างไรก็ตามหากคุณให้สถานที่อื่นคุณควรชี้ไปที่ตำแหน่งนั้น


1

ในกรณีของฉันฉันใช้nvm-windows 1.1.6และฉันอัปเดตเวอร์ชัน nodejs โดยใช้nvm install latestซึ่งในที่สุดก็บอกฉันว่ามีการติดตั้ง nodejs และ npm อย่างไรก็ตามเมื่อฉันพยายามทำnpm installฉันได้รับ

ข้อผิดพลาด: ไม่พบโมดูล 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js'

เมื่อตรวจสอบโครงสร้าง nvm-windows ฉันพบว่าC:\Program Files\nodejsมีการ%APPDATA%\nvm\NODE_VERSIONเชื่อมโยงกับ (NODE_VERSION คือ v9.7.1 ในกรณีของฉัน) ซึ่งมีโฟลเดอร์node_modulesที่ไม่มีอะไรอยู่ภายในทำให้เกิดข้อผิดพลาดนี้ วิธีแก้ปัญหาคือคัดลอกnpmโฟลเดอร์จากโฟลเดอร์เวอร์ชันก่อนหน้าของฉันแล้วnode_modulesวางลงจากนั้นฉันอัปเดต npm ด้วยnpm install npm@next -gและทุกอย่างก็เริ่มทำงานอีกครั้ง


1

เพียงแค่เรียกใช้คำสั่งนี้:

npm i npm@latest -g

ยินดีต้อนรับสู่ Stack Overflow! คุณช่วยอธิบายให้ละเอียดได้ไหมว่าสิ่งนี้ทำอะไรและตอบคำถามได้อย่างไร
anothernode


1

ใน Windows 10:

  1. กดปุ่ม windows พิมพ์แก้ไขตัวแปรสภาพแวดล้อมระบบจากนั้นป้อน
  2. คลิกตัวแปรสภาพแวดล้อม ...
  3. ในครึ่งล่างของหน้าต่างที่เปิดขึ้นพร้อมกับตัวแปรสภาพแวดล้อมชื่อเรื่องคุณจะเห็นตารางชื่อตัวแปรระบบโดยมีสองคอลัมน์ซึ่งเป็นตัวแปรแรกที่มีชื่อว่าตัวแปร
  4. ค้นหาแถวที่มีตัวแปร Path แล้วคลิก
  5. คลิกแก้ไขซึ่งจะเปิดหน้าต่างชื่อ Edit evironment variable
  6. ที่นี่ถ้าคุณพบ

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

เลือกและคลิกปุ่มแก้ไขทางด้านขวาของคุณจากนั้นแก้ไขฟิลด์ไปยังเส้นทางที่คุณมีโฟลเดอร์ nodejs ในกรณีของฉันมันเป็นเพียงการย่อให้เป็น:

C: \ Program Files \ nodejs

จากนั้นฉันปิดเทอร์มินัล cmd หรือ powershell ทั้งหมดของฉันเปิดอีกครั้งและ npm ใช้งานได้


1

สำหรับผู้ชายที่ยังคงมาในหัวข้อนี้:

  • ติดตั้งโหนดจากเว็บไซต์อย่างเป็นทางการ (ตรวจสอบ npm และเวอร์ชันโหนดเพื่อตรวจสอบว่าติดตั้งอย่างถูกต้องใช่ในเทอร์มินัลใหม่ / cmd)
  • ติดตั้ง nvm ทันทีและเมื่อแจ้งว่าจัดการโหนดปัจจุบันด้วย nvm ให้คลิกใช่
  • เปิด cmd ใหม่และรัน nvm บน

คุณไม่จำเป็นต้องติดตั้งโหนดจากเว็บไซต์อย่างเป็นทางการกับ NVM: nvm install latestคุณสามารถติดตั้งรุ่นล่าสุดของโหนดกับการทำงาน
Marco Lackovic


0

ฉันพบปัญหานี้เมื่อติดตั้ง node9.0.0 บน windows7 ในตอนท้ายวิธีแก้ปัญหาคือเพียงลบ npm npm.cmd npx npx.cmd จาก C: \ Program Files \ nodejs \ node_modules \ npm \ bin ก่อนที่จะดำเนินการนี้วิธีแก้ปัญหาคือ เรียกใช้ C: \ Program Files \ nodejs \ npm นั่นเป็นวิธีหนึ่งเพื่อดูว่าคุณมีปัญหาเดียวกันหรือไม่


0

สร้างโฟลเดอร์ npm ด้วยตนเองภายใน node_modules และเรียกใช้โปรแกรมติดตั้งใหม่พร้อมตัวเลือกการซ่อมแซม มันคัดลอกไฟล์ที่หายไป


0

สำหรับฉันข้างต้นไม่ได้ผลฉันเพิ่งสังเกตว่าทุกครั้งที่ทำ "npm install ... " คำสั่ง npm ใด ๆ ก็หยุดทำงาน ดังนั้นทุกครั้งที่ติดตั้งฉันต้องเรียกใช้โปรแกรมติดตั้ง NodeJS และเลือก "ซ่อมแซม" จนกว่าฉันจะพบทางออกที่แท้จริง :)


มันเป็นการดีที่จะโพสต์วิธีแก้ปัญหาและเราก็ขอบคุณสิ่งนี้ด้วย.. แต่มันจะดีกว่าถ้าคุณอธิบายอย่างมีเหตุผลแทนที่จะบอกว่ามันใช้งานได้อย่างน่าอัศจรรย์ :)
Aousaf rashid

0

การอัปเดต NPM เป็นเวอร์ชันล่าสุดใช้ได้ผลสำหรับฉัน:

npm install npm@latest -g

0

เปลี่ยนตัวแปรเส้นทางสภาพแวดล้อม C: \ Program Files \ nodejs \ node_modules \ npm \ bin และเปิดเทอร์มินัลคำสั่งและ npm -v และ


0

วันนี้ฉันพบปัญหาเดียวกันในเซิร์ฟเวอร์ Linux และเหตุผลนั้นง่ายมากเพราะฉันไม่ได้ทำmake installหลังจากนั้นmakeและพยายามโทรหาผู้สร้างโดยตรงnpmโดยตรง ดังนั้นเส้นทางและทุกอย่างจึงยุ่งเหยิง

ดังนั้นสำหรับผมแล้วการแก้ปัญหาเป็นเพียงที่จะทำmake installหลังmakeและเรียกใช้ภายใต้npm.node/bin/npm


0

ข้อผิดพลาด: ไม่พบโมดูล 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js'

ดูที่ด้านบนและจะเห็นได้ชัดว่าเส้นทางมีปัญหา 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js' ควรเปลี่ยนเป็น -> 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm -cli.js 'ซึ่งหมายความว่า "\ node_modules \ npm \ bin" ที่อยู่ระหว่างนั้นซ้ำกันซึ่งทำให้เกิดข้อผิดพลาดโง่ ๆ ฉันแก้ไขโดยแก้ไข System Variable และอัปเดต PATH ตามที่อธิบายไว้ข้างต้น


0

ปัญหาเดียวกัน

แก้ไขได้โดยการคัดลอกไฟล์ที่หายไปจาก

C: \ Users \ UserName \ AppData \ Roaming \ npm \ node_modules \ npm \ bin

ถึง

C: \ Users \ UserName \ node_modules \ npm \ bin

ไฟล์ที่หายไปคือ

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