Ошибка npm не может найти модуль «semver» в Ubuntu 19.04

Ошибка npm не может найти модуль «semver» в 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

Нашел похожий вопросздесьи ответ сработал.

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

Это зависит от того, как вы хотите управлять 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: должен вернуться... no such file or directory
  5. nodejs --version: должно вернуть v1x.x.x. Это версия, установленная apt. Она, вероятно, будет менее новой, чем последняя версия, доступная на веб-сайте Node JS.
  6. sudo apt-get install npm
  7. npm --version: он будет использовать nodejsустановленный файл aptи работать правильно.

решение3

Я использовал nvm для управления версиями узлов. В моем случае npm syslink был сломан. Я решил проблему, удалив и переустановив узел снова.

проверьте версию вашего узла с помощьюnode --version

затем бегиnvm uninstall <your version>

затем переустановите с помощьюnvm install <your version

решение4

У меня была та же проблема, но 22.04. Ничего из вышеперечисленного мне не помогло, но я нашел этот процесс, который помог. https://codemarvels.in/2021/03/20/npm-install-gives-error-cannot-find-module-semver/ По сути:

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
sudo apt-get install nodejs npm

Связанный контент