Npm não consegue encontrar o erro do módulo “semver” no Ubuntu 19.04

Npm não consegue encontrar o erro do módulo “semver” no Ubuntu 19.04

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.xzarquivo 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 nodejsdesta npmforma.

É muito provável que a versão do npm que você está usando esteja semverem 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 nodejse 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:

  1. sudo apt-get purge nodejs --auto-removeesudo apt-get purge npm --auto-remove
  2. 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ós node:.
  3. sudo apt-get install nodejs
  4. node --version: deveria retornar... no such file or directory
  5. nodejs --version: deve retornar v1x.x.x. Esta é a versão instalada pelo apt. Provavelmente será menos recente que a versão mais recente disponível no site do Node JS.
  6. sudo apt-get install npm
  7. npm --version: usará o nodejsinstalado por apte 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

informação relacionada