Npm install не може знайти модуль '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?
анандхаршан

1
Просто перевстановіть npm
Nuno Ferro

Різні, але можливо пов’язані з цим: /programming/53545800#62740853 - Корисно?
Генке

Відповіді:


404

У мене була така ж помилка. 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, працювали в обох випадках.
Камікадзе Рашер

7
Використовуйте brew uninstall --force nodeдля видалення всіх версій
видаліть

5
просто встановіть npm знову. curl -0 -L https://npmjs.org/install.sh | sudo shпісля видалення папки npm
Баріон Лі

17
Якщо Пряжа вже встановлена, brew uninstall --ignore-dependencies nodeпрацює для мене там, де brew uninstall --force nodeцього не було.
Максим Лафарі

13
Я винен у сліпому вставленні команд, але sudo rm -rf /usr/local/lib/node_modulesзмусив мене втратити глобальні модулі, які я використовую, наприклад сервер gulp та selenium. Будьте втомлені від цього
AmmarCSE

84

Я зіткнувся з тим же питанням і тут.

Якщо це відбувається відразу після запуску brew install yarn спробуйте запустити yarn global add npmі voilà - виправлено!


2
Це рішення чудово працювало для мене і нескінченно простіше, ніж тут альтернативи. Я думаю, що пряжа може переплутати npm, якщо встановлення отримає дозволи / помилку доступу під час оновлення / встановлення.
Slbox

53

У MS Windows рішенням є видалення %APPDATA%\npmта перевстановленняnode


Я хочу, щоб я міг подвоїти це голосування за Windows. Там є причал: Каталог AppData був прихованим за замовчуванням, тому я не думав, що він фактично встановлений у цьому місці.
Рінго

7
У Windows просто ремонт не потребує перевстановлення
MotKohn

2
@MotKohn Відремонтувати що? Нога? кістка? автомобіль? "ремонтувати" що ?!
samayo

2
@samayo У Windows, де ви встановлюєте, є варіант ремонту. Вибачте, це був контекстуальний коментар.
MotKohn

2
Цей підхід працював і на моєму 64-розрядному ноутбуці Windows 8.1 Enterprise. Мені довелося видалити як папки "npm", так і "npm-cache", після чого слід видалити та встановити новий вузол.
Едді

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!! what heck, пряжа
movac

23

У Arch Linux те, що зробило трюк для мене:

sudo pacman -Rs npm
sudo pacman -S npm

1
Мені довелося скористатися, sudo pacman -Rddщоб усунути ігнорування залежностей, але це не вирішило для мене питання. Установка semver з аркових пакетів у відповідь Матіаса Брауна.
П'єр-Алексіс Чавальдіні

15

Щойно зіткнувшись з цим в Arch Linux 4.13.3, я вирішив проблему, просто перевстановившись semver:

pacman -S semver

8

Насправді, це посилання на раніше збережені модулі.

Рішення: Видаліть папку npm-cache / npm в каталозі установки nodejs. У Windows він знаходиться в C: / User / Username / Appdata / Roaming / npm (або npm_cache). і спробуйте встановити знову.

Те ж саме потрібно зробити в будь-якій ОС.


Це воно. Я видалив вузол. Потім видалено npmі npm_cacheз, і з /Appdata/Roaming. Потім знову встановлено вузол. Здається, там винен кеш.
Саулюс

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. Щоб бути більш конкретним щодо неністалу, спробуйте дотримуватися цього :

Видалення

Так сумно бачити, як ти йдеш.

Судо npm uninstall npm -gАбо, якщо це не вдасться,

sudo зробити видалення Більш серйозна видалення

Зазвичай вищевказаних інструкцій достатньо. Це видалить npm, але залишить після себе все, що ви встановили.

Якщо ви хочете видалити всі встановлені вами пакети, тоді ви можете знайти команду npm ls, щоб знайти їх, а потім npm rm, щоб видалити їх.

Щоб видалити сухе, що залишилося на npm 0.x, ви можете використовувати доданий файл сценарію clean-old.sh. Ви можете запустити його зручно так:

npm досліджує npm -g - sh-скрипти / clean-old.sh npm використовує два файли конфігурації, один для конфігурацій кожного користувача та інший для глобальних (для кожного користувача) конфігурацій. Ви можете переглянути їх, виконавши:

npm config отримати userconfig # за замовчуванням ~ / .npmrc npm config отримати globalconfig # defaults до / usr / local / etc / npmrc Видалення npm не видаляє конфігураційні файли за замовчуванням. Ви повинні їх видалити самостійно вручну, якщо хочете, щоб вони пішли. Зверніть увагу, що це означає, що майбутні установки npm не запам’ятають вибрані вами налаштування.


Оновлено мою відповідь. Спробуй зараз. Якщо це не працює, тестуйте щось для мене. Скопіюйте package.json в іншу папку і спробуйте використовувати npm install.
Родментоу

1
Чи можете ви вставити пакунок.json, будь ласка?
Родментоу

{"name": "робоча область", "version": "0.0.0", "private": true, "script": {"start": "node ./bin/www"}, "залежності": {" 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", "serve-favicon": "~ 2.3 .0 "}," двигуни ": {" вузол ":" 4.2.2 "}}
користувач2447562

Ви намагалися запустити npm install зі своїм пакетом package.json в іншій папці?
Роментоу

мені доведеться видалити node.js, після установки node.js .... мені потрібно створити sampleapplication за допомогою середнього. За цей час мені доведеться встановити команду nta intall, але я отримую таку ж помилку ... будь ласка, дайте рішення для мені ....
користувач2447562

1

Нарешті я зрозумів це! Так, потрібно видалити / видалити всі файли та перевстановити. АЛЕ ДЕЯКІ ФАЙЛОВІ ПАРТИ ДУЖЕ ДЛЯ ВІДКЛЮЧЕННЯ ВІД НЕУСТАНОВОГО ПРОЦЕСУ. Шлях до файлів у Вузлі настільки довгий, що їх неможливо видалити. Ви повинні перейменувати шляхи до файлів.

Після видалення вузла використовуйте командний рядок, перейдіть до ... \ Appdata \ roaming \ (використовуйте шлях від повідомлення про помилку). Спробуйте видалити папку з дель npm. Потім, якщо це не дозволяє вам видалити папку, починайте перейменовувати папки на шляху до файлу в наступному повідомленні про помилку на "a" або щось коротке. Можливо, вам доведеться зробити це для кількох папок на шляху. Тоді ви зможете видалити! Потім перевстановіть вузол, і він повинен працювати.



0

У моєму випадку просто повторний запуск brew install yarnвирішив проблему.


0

Я зіткнувся з такою ж проблемою після того, як заварка встановлює пряжу на моєму MacOs Sierra 10.12.6. (І перша спроба установки припадає після самостійного оновлення пива з повідомленням "Homebrew потрібно запустити під Ruby 2.3! Ви працюєте з 2.0.0. (RuntimeError)". Тому я повторно запускаю його.)

Тому я використовую n менеджер для перевстановлення npm.

  • перейти на іншу версію вузла (для мого випадку до 8.0) командою "n" з порожніми параметрами
  • або встановити нове "n xxx", де xxx номер версії вузла (мені потрібно 6.9.1)
  • видалити робочу версію за допомогою "n rm xxx", де xxx номер версії вузла. використовуйте судо, якщо потрібно
  • встановіть робочу версію за "n xxx", де xxx номер версії вузла. використовуйте судо, якщо потрібно
  • перейти на робочу версію вузла. (див. перший крок для ознайомлення)

Я думаю, що проблема може бути викликана тим, що вузол був встановлений під sudo для випадку.


0

Для користувачів Mac я спробував встановити купу нових версій вузлів та видалити різні. Це не виправило. Ви повинні спочатку повністю витерти всі свої установки. Дотримуйтесь цих інструкцій ... Як повністю видалити Node.js та перевстановити з початку (Mac OS 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 модуль, і знову вам доведеться перевстановити його

npm встановити @ 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", це кидало мені ту саму помилку.

Можливо, це пов'язано з невідповідністю версії порівняно з моєю глобально встановленою глоткою.

Отже, або оновлення gulp глобальним прапором допоможе, інакше я слідую за цим нижче

Однак я використовував "./node_modules/.bin/gulp watch" у своєму проекті. Це гарантує, що всі залежності, необхідні gulp, приймаються лише з node_modules.


0

Як зазначає анонімний (?) На DeveloperReference.com, кроки нижче вирішили для мене "не можна знайти модуль" semver "при запуску npm -install:

* "Я дотримувався цих кроків, і це вирішило мою проблему з видаленням Node.js

  1. Видаліть вміст наступних папок
    • C: \ Користувачі \ {ім'я користувача} \ AppData \ Роумінг \ npm-кеш
    • C: \ Користувачі \ {ім'я користувача \ \ AppData \ Роумінг \ 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


-2

Я зіткнувся з тією ж проблемою і вирішив її, оновивши свою версію Node

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