
Estou recebendo o seguinte erro sempre que tento executar o comando 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'
]
}
Basicamente, eu estava tentando fazer uso offline do FreeCodeCamp. Ele me pediu para executar o comando 'npm ci', a partir do qual comecei a receber esse erro.
Tentei reinstalar o npm, mas não funcionou. Também tentei instalar o módulo semver que também não ajudou.
O que pode ter dado errado e como posso corrigir isso?
Responder1
Encontrei uma pergunta semelhanteaquie a resposta funcionou.
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
Baixe o tar.xz
arquivo NodeJS mais recente emhttps://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/
Onde #.#.#
está a versão que você baixou.
Verifique a instalação usando
node -v
npm -v
Responder2
Depende de como você deseja gerenciar o Node JS/npm.
Como sugeriu Bilbo Bolseiro, você pode instalar a versão LTS mais recente do Node JS no site oficial:https://nodejs.org/en/download/.
No Ubuntu, se você preferir gerenciar o Node através dos repositórios padrão usando apt
, é melhor instalar ambos nodejs
desta npm
forma.
É muito provável que a versão do npm que você está usando esteja semver
em um local específico que não está alinhado com a versão do Node JS que você instalou. Se houver apenas uma versão nodejs
e apenas uma versão do npm
, e ambas estiverem instaladas usando os repositórios padrão, isso deverá funcionar perfeitamente.
Aqui está minha melhor orientação para fazer o Node e o npm funcionarem usando os principais repositórios do Ubuntu:
sudo apt-get purge nodejs --auto-remove
esudo apt-get purge npm --auto-remove
whereis node
: remova todas as versões do nó, uma de cada vez. Repita até que este comando retorne um espaço em branco apósnode:
.sudo apt-get install nodejs
node --version
: deveria retornar... no such file or directory
nodejs --version
: deve retornarv1x.x.x
. Esta é a versão instalada peloapt
. Provavelmente será menos recente que a versão mais recente disponível no site do Node JS.sudo apt-get install npm
npm --version
: usará onodejs
instalado porapt
e funcionará corretamente.
Responder3
Eu estava usando o nvm para gerenciar versões do nó. No meu caso, o syslink do npm foi quebrado, resolvi o problema desinstalando e reinstalando o nó novamente
verifique a versão do seu nó usandonode --version
então corranvm uninstall <your version>
em seguida, reinstale usandonvm install <your version
Responder4
Eu tive o mesmo problema, mas em 22.04. Nenhuma das opções acima funcionou para mim, mas descobri que esse processo funcionou. https://codemarvels.in/2021/03/20/npm-install-gives-error-cannot-find-module-semver/ Essencialmente:
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