Я получаю следующую ошибку, когда пытаюсь запустить команду 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, который также не помог.
Что могло пойти не так и как я могу это исправить?
Найденный подобным вопросом здесь и ответом работал.
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
Это зависит от того, как вы хотите управлять 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:
sudo apt-get purge nodejs --auto-remove
и sudo apt-get purge npm --auto -remove
whereis node
: удалить все версии узла по одному. Повторяйте, пока эта команда не вернет пробел после node:
. sudo apt-get install nodejs
node --version
: должен возвращать ... нет такого файла или каталога
nodejs --version
: должен возвращать v1x .xx
. Это версия, установленная apt
. Вероятно, она будет менее свежей, чем последняя версия, доступная на веб-сайте Node JS. sudo apt-get install npm
npm --version
: он будет использовать nodejs
, установленный apt
, и будет работать правильно.