Npm no puede encontrar el error "semver" del módulo en Ubuntu 19.04

Npm no puede encontrar el error "semver" del módulo en Ubuntu 19.04

Recibo el siguiente error cada vez que intento ejecutar el 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'
  ]
}

Básicamente, estaba intentando hacer uso de FreeCodeCamp sin conexión. Me pidió que ejecutara el comando 'npm ci' desde el cual comencé a recibir este error.

Intenté reinstalar npm pero no funciona. También intenté instalar el módulo semver, lo cual tampoco ayudó.

¿Qué pudo haber salido mal y cómo puedo solucionarlo?

Respuesta1

Encontré una pregunta similaraquíy la respuesta funcionó.

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

Descargue el último tar.xzarchivo NodeJS desdehttps://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/

¿Dónde #.#.#está la versión que descargaste?

Verifique la instalación usando

node -v
npm -v

Respuesta2

Depende de cómo desee administrar Node JS/npm.

Como sugirió Bilbo Baggins, puede instalar la última versión LTS de Node JS desde el sitio web oficial:https://nodejs.org/en/download/.

En Ubuntu, si prefiere administrar Node a través de los repositorios predeterminados usando apt, es mejor instalar ambos nodejsy npmde esta manera.

Es muy probable que la versión de npm que estás usando esté semveren un lugar específico que no esté alineado con la versión de Node JS que tienes instalada. Si solo hay una versión de nodejsy solo una versión de npm, y ambas están instaladas usando los repositorios predeterminados, esto debería funcionar perfectamente.

Aquí está mi mejor guía para hacer que Node y npm funcionen usando los repositorios principales de Ubuntu:

  1. sudo apt-get purge nodejs --auto-removeysudo apt-get purge npm --auto-remove
  2. whereis node: elimina todas las versiones de node, una a la vez. Repita hasta que este comando devuelva un espacio en blanco después de node:.
  3. sudo apt-get install nodejs
  4. node --version: debería regresar... no such file or directory
  5. nodejs --version: debería regresar v1x.x.x. Esta es la versión instalada por apt. Probablemente será menos reciente que la última versión disponible en el sitio web de Node JS.
  6. sudo apt-get install npm
  7. npm --version: utilizará el nodejsinstalado por apty funcionará correctamente.

Respuesta3

Estaba usando nvm para administrar las versiones de los nodos. En mi caso, npm syslink estaba roto, lo resolví desinstalando y luego reinstalando el nodo nuevamente.

verifique la versión de su nodo usandonode --version

entonces correnvm uninstall <your version>

luego reinstale usandonvm install <your version

Respuesta4

Tuve el mismo problema, pero el 22.04. Nada de lo anterior funcionó para mí, pero encontré este proceso que sí funcionó. https://codemarvels.in/2021/03/20/npm-install-gives-error-cannot-find-module-semver/ Esencialmente:

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

información relacionada