npm-cli.js не знайдено під час запуску npm


90

Зазвичай я можу встановити бібліотеку за допомогою 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: \ Програмні файли \ nodejs \ node_modules \ npm \ bin \

але не бачити папку node_modules як описану помилку.

Я також намагаюся знайти npm-cli.js і переконатися, що він насправді єC:\Program Files\nodejs\node_modules\npm\bin\


коли ви встановили вузол?
Мрітунджай

1
На жаль, я забув перевстановити node, щоб виправити цю помилку, тому зараз немає папки node_modules. Але до цього я також перевірив C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \, але не бачив у ній папки npm.
user1192476

У мене є відповідь на це. Опублікує через 8 годин. Дякую.
user1192476

Відповіді:


105

Виявляється, проблема пов’язана з неправильним шляхом вузла в системній змінній. На даний момент шлях вказує на

(Я справді не знаю, коли я його змінив)

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

тому я переходжу на

C:\Program Files\nodejs

і це працює як шарм.


16
Була та сама проблема. Ніколи не змінював шлях, тому я здогадуюсь, що це мало статися, коли я оновив Node.
Nils Magne Lunde

Думаю, для мене проблема починає відбуватися, коли я встановив Electron :(
Чарльз Уокер

4
де ти це змінив? який файл?
CodeToad

1
Змінні середовища.
Крозета,

В останній версії після оновлення ви можете побачити обидва шляхи у змінних середовища, а старий (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) має перевагу над новим (C: \ Program Files \ nodejs ). Видалення першого вирішує проблему для мене.
Шахрок

43

Вам потрібно запустити це в командному рядку.

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

bash shell у вікнах
Пратхап Кудупу

У мене виникла ця проблема, коли я оновив свою версію вузла. Ваше рішення для мене спрацювало ідеально. Мені не довелося видаляти жодну node_modulesпапку
AllJs

1
Радий, що це допомогло
Пратхап Кудупу

Мені довелося перемістити цей шлях далі, щоб надати йому вищий пріоритет після спроби оновити npm за допомогою npm (npm -i npm).
Кори Алікс,

26

Ви також можете мати цю проблему, якщо на вашому шляху у вас є C:\Program Files\nodejsі C:\Program Files\nodejs\node_modules\npm\bin. Видаліть останню зі шляху


4
на шляху де?
CodeToad

18

Я щойно відремонтував свою установку NodeJS, і вона у мене спрацювала!

Перейдіть до Control Panel\All Control Panel Items\Programs and Features-> знайти NodeJSта вибрати варіант ремонту, щоб його відремонтувати. Сподіваюся, це допомагає.


1
Це працювало для мене, але це називається "програми та функції" у Windows 10.
PeonProgrammer

У моєму випадку в папці node_modules не було папки npm, і все, що я робив, - це виконувати команду npm install express, це допомогло.
Лалит Фауздар,

Дякую за це! моя проблема була вирішена після відновлення Nodejs у розділі "Програми та функції" на моєму ПК з Windows!
missjcohen

18

Скопіюйте каталог із іменем npmіз встановленого шляху вузла (у моєму випадку каталог npm був доступний у C:\Program Files\nodejs\node_modules).

Перейдіть C:\Users\%USERNAME%\AppData\Roaming\npm\node_modulesі вставте npmтуди скопійований каталог.

Цей метод працював у мене, коли у мене була та сама помилка. . .


3
Дякую, це спрацювало чудово після того, як оновлення зіпсувало мою установку та ремонт NPM, а перевстановлення не виправило.
Slbox

14

Це не той самий випадок, як у питанні, але може бути корисним для тих, хто стикається з подібною проблемою. У Windows, якщо ви викликаєте npmкоманди з якогось інструмента керування доступом / автоматизації, може виникнути помилка:

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

де SOME_PATHнемає, Program Files/...а замість цього - якийсь каталог проекту. Отже, npm намагається знайти npm-cli.js всередині кореневого каталогу проекту, а не шукати його в 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 для запуску команди встановлення в певному каталозі, це не вирішить проблему
Деніел Фішер lennybacon

Мені вдалося запустити каталог змін за допомогою команди npm згодом: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Program Files \ nodejs \ npm.cmd "встановити
Деніел Фішер lennybacon

7

Жодна з інших відповідей у ​​мене не спрацювала.

Ось що я пишу (у оболонці git bash на вікнах):

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

6

Я зіткнувся з тією ж проблемою з вузлом 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.


Мій шлях виглядав нормально; Видалення / перевстановлення вирішило проблему для мене.
Марк Маслар,

У мене були деякі дивні проблеми зі старим вузлом, навіть коли я перейшов на новішу версію. Тож я видалив старий вузол і знову встановив новий. Цим самим я вирішив проблему з cli :) дякую
Андрей Гаспар

5

На Mac:

Я запускав це з плагіна Maven com.github.eirslett Frontend, коли у мене була та ж помилка.

Зрештою мені довелося:

Встановіть Node.js через інсталятор, завантажте тут: http://nodejs.org/

Видалити всі node/та node_modules/папки з моєї структури побудови maven.


2
Схоже, це було виправлено в нових версіях плагіна frontend: github.com/eirslett/frontend-maven-plugin/issues/147
Noremac,

5

На додаток до вище, мені довелося C:\Users\%USERNAME%\AppData\Roaming\npmтакож видалити . Це допомогло.


1
У моїй системі саме там знаходяться глобальні пакети; якщо ви видалите його зі шляху, можливо, ви більше не зможете запустити
глотку

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 користувачі не матимуть інтелектуального графічного інтерфейсу користувача змінних середовища Windows 10.
У будь-якому випадку, все, що вам потрібно зробити, це шукати "C:\Program Files\nodejs\node_modules\npm\bin"та видалити його.
Також видаліть "C:\Users\%USERNAME%\AppData\Roaming\npm"зі свого середовища змінні. Я публікую цю відповідь, тому що витратив 10 годин на пошук рішення в Інтернеті. Поєднуючи наведену вище відповідь, я нарешті вирішую проблему.


4

Це почалося у мене після того, як я встановив GoogleChrome / puppeteer , рішенням було перевстановити npm:

$ npm i npm@latest

або

$ npm install npm@latest

2

Жодне з рішень тут не працювало для мене, але після того, як я перезапустив систему і зробив це npm installзнову, це спрацювало. Я б здогадався, що один або кілька процесів, які я запускав до цього, проводились.

Простий перезапуск ПК у Windows 10 зробив для мене магію!


Працював і у мене! Помилка сталася, ймовірно, після оновлення Win10
Арно ван Оордт

2

У мене була така сама проблема з вікнами. Я щойно відновив Node, і він працював нормально після перезапуску команди у Windows.


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

просто запустіть цю команду:

npm i npm@latest -g

Ласкаво просимо до Stack Overflow! Не могли б ви детальніше розповісти, що це робить і як це відповідає на питання?
anothernode


1

У Windows 10:

  1. Натисніть клавішу windows, введіть редагувати змінні системного середовища, а потім введіть.
  2. Клацніть змінні середовища ...
  3. У нижній половині вікна, що відкрилось із заголовками Змінні середовища, ви побачите таблицю з назвою Системні змінні з двома стовпцями, перша з назвою змінної.
  4. Знайдіть рядок із змінною Шлях і клацніть на ньому.
  5. Клацніть редагувати, що відкриє вікно з назвою Редагувати змінну середовища.
  6. Ось якщо знайдете

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

виберіть його та натисніть кнопку редагування праворуч, а потім відредагуйте поле до шляху, де у вас є папка nodejs, у моєму випадку це було просто скорочення до:

C: \ Program Files \ nodejs

Потім я закрив усі свої термінали cmd або PowerShell, знову відкрив їх і npm працював.


1

Для хлопців, які все ще обговорюють цю тему:

  • встановити вузол з офіційного сайту (перевірити npm та версію вузла, щоб перевірити, чи правильно встановлено, так, у новому терміналі / cmd);
  • встановити nvm зараз і коли з'явиться запит, чи потрібно керувати поточним вузлом за допомогою nvm, натисніть так;
  • відкрийте новий cmd та запустіть nvm.

Вам не потрібно встановлювати Node з офіційного сайту за допомогою nvm: ви можете встановити останню версію Node під запуском nvm nvm install latest.
Marco Lackovic

0

Рішення для мене у VS2017 (у розділі Інструменти | Параметри ...)

У розділі Інструменти |  Параметри ...

Я змінив шлях на: C: \ Program Files \ nodejs


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

У моєму випадку я використовував 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і все знову почало працювати.


0

Для мене нічого з вищезазначеного не спрацювало, я просто помітив, що кожного разу, коли я роблю "встановлення npm ...", будь-яка команда npm просто перестає працювати. Тому при кожному встановленні я повинен запускати програму встановлення NodeJS і вибирати «відновити». Поки не знайду реального рішення :)


Добре розміщувати рішення, і ми також це цінуємо .. Але було б краще, якщо б ви пояснювали логічно, а не говорили, що це магічно спрацювало :)
Аусаф Рашид

0

У мене працювало оновлення NPM до останньої версії:

npm install npm@latest -g

0

Змініть змінну шляху середовища C: \ Program Files \ nodejs \ node_modules \ npm \ bin та відкрийте командний термінал та npm -v та


0

Я зіткнувся з точно такою ж проблемою сьогодні на сервері Linux. І причина насправді проста, оскільки я не робив цього make installпісля makeі намагався безпосередньо викликати згенерований npm. Таким чином, PATH і все було в хаосі.

Тому для мене рішення просто зробити make installпісля makeі запустити npmunder .node/bin/npm.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.