Npm не может найти модуль & ldquo; semver & rdquo; ошибка в Ubuntu 19.04

Я получаю следующую ошибку, когда пытаюсь запустить команду npm.

internal/modules/cjs/loader.js:626
throw err;
^

Error: Cannot find module 'semver'
Require stack:
- /usr/share/npm/lib/utils/unsupported.js
- /usr/share/npm/bin/npm-cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:623:15)
    at Function.Module._load (internal/modules/cjs/loader.js:527:27)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/usr/share/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/usr/share/npm/lib/utils/unsupported.js',
    '/usr/share/npm/bin/npm-cli.js'
  ]
}

В основном я пытался использовать FreeCodeCamp в автономном режиме. Он попросил меня выполнить команду 'npm ci', из которой я начал получать эту ошибку.

Я попытался переустановить npm, но он не будет работать. Я также попытался установить модуль semver, который также не помог.

Что могло пойти не так и как я могу это исправить?

1
задан 20 June 2019 в 14:19

2 ответа

Найденный подобным вопросом здесь и ответом работал.

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*

sudo apt-get purge nodejs npm
sudo apt autoremove

Загрузите последнее tar.xz Файл NodeJS от https://nodejs.org/en/download/

tar -xf node-v#.#.#-linux-x64.tar.xz
sudo mv node-v#.#.#-linux-x64/bin/* /usr/local/bin/
sudo mv node-v#.#.#-linux-x64/lib/node_modules/ /usr/local/lib/

Где #.#.# версия, которую Вы загрузили.

Проверьте использование установки

node -v
npm -v
2
ответ дан 7 December 2019 в 13:16

Это зависит от того, как вы хотите управлять Node JS/npm.

По совету Бильбо Бэггинса вы можете установить последнюю LTS-версию Node JS с официального сайта: https://nodejs.org/en/download/.

В Ubuntu, если вы предпочитаете управлять Node через репозитории по умолчанию, используя apt, лучше всего установить оба nodejs и npm таким образом.

Вполне вероятно, что используемая вами версия npm ожидает semver в определенном месте, которое не соответствует установленной вами версии Node JS. Если есть только одна версия nodejs и только одна версия npm, и обе они установлены с использованием репозиториев по умолчанию, это должно работать отлично.

Вот мое лучшее руководство по настройке работы Node и npm с использованием основных репозиториев Ubuntu:

  1. sudo apt-get purge nodejs --auto-remove и sudo apt-get purge npm --auto -remove
  2. whereis node: удалить все версии узла по одному. Повторяйте, пока эта команда не вернет пробел после node:.
  3. sudo apt-get install nodejs
  4. node --version: должен возвращать ... нет такого файла или каталога
  5. nodejs --version: должен возвращать v1x .xx. Это версия, установленная apt. Вероятно, она будет менее свежей, чем последняя версия, доступная на веб-сайте Node JS.
  6. sudo apt-get install npm
  7. npm --version: он будет использовать nodejs, установленный apt, и будет работать правильно.
4
ответ дан 28 August 2020 в 14:23

Другие вопросы по тегам:

Похожие вопросы: