
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.xz
archivo 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 nodejs
y npm
de esta manera.
Es muy probable que la versión de npm que estás usando esté semver
en 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 nodejs
y 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:
sudo apt-get purge nodejs --auto-remove
ysudo apt-get purge npm --auto-remove
whereis node
: elimina todas las versiones de node, una a la vez. Repita hasta que este comando devuelva un espacio en blanco después denode:
.sudo apt-get install nodejs
node --version
: debería regresar... no such file or directory
nodejs --version
: debería regresarv1x.x.x
. Esta es la versión instalada porapt
. Probablemente será menos reciente que la última versión disponible en el sitio web de Node JS.sudo apt-get install npm
npm --version
: utilizará elnodejs
instalado porapt
y 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