npm-cli.js no se encuentra al ejecutar npm


91

Por lo general, puedo instalar una biblioteca usando npm, pero hoy, al instalar yeoman, encontré estos errores. Ayude a averiguar cuál es la causa raíz.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Miré en la carpeta:

C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin \

pero no ve la carpeta node_modules como se describe en el error.

También trato de encontrar npm-cli.js y veo que está realmente enC:\Program Files\nodejs\node_modules\npm\bin\


cuando instalaste el nodo?
Mritunjay

1
Lo siento, olvidé haber reinstalado el nodo para corregir este error, así que ahora no hay una carpeta node_modules. Pero antes de eso también verifiqué C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ pero no vi la carpeta npm en ella.
user1192476

Tengo respuesta para esto. Publicará después de 8 horas. Gracias.
user1192476

Respuestas:


105

Resulta que el problema se debe a la ruta incorrecta del nodo en la variable del sistema. El camino apunta actualmente a

(Realmente no sé cuando lo modifiqué)

C:\Program Files\nodejs\node_modules\npm\bin

así que me cambio a

C:\Program Files\nodejs

Y funciona como un encanto.


16
Tuvo el mismo problema. Nunca cambié la ruta, así que supongo que esto debe haber sucedido cuando actualicé Node.
Nils Magne Lunde

Creo que para mí el problema comenzó a suceder cuando instalé Electron :(
Charles Walker

4
donde cambiaste esto? que archivo?
CodeToad

1
Variables ambientales.
Crozeta

En la última versión, después de la actualización, es posible que vea ambas rutas en sus variables de entorno, y la anterior (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) tiene prioridad sobre la nueva (C: \ Program Files \ nodejs ). Eliminar el primero me resuelve el problema.
Shahroq

45

Necesitas ejecutar esto en la línea de comando.

SET PATH=C:\Program Files\Nodejs;%PATH%

bash shell en Windows
Prathap Kudupu

Tuve este problema cuando actualicé mi versión de node. Tu solución me funcionó perfectamente. No tuve que eliminar ninguna node_modulescarpeta
AllJs

1
Me alegro de que haya ayudado
Prathap Kudupu

Tuve que mover esta ruta hacia arriba para darle mayor prioridad después de intentar actualizar npm usando npm (npm -i npm).
Corey Alix

26

También puede tener este problema si en su camino tiene C:\Program Files\nodejsy C:\Program Files\nodejs\node_modules\npm\bin. Quita este último del camino


4
en el camino donde?
CodeToad

18

¡Acabo de reparar mi instalación de NodeJS y funcionó para mí!

Vaya a Control Panel\All Control Panel Items\Programs and Features-> busque NodeJSy elija la opción de reparación para repararlo. Espero que esto ayude.


1
Esto funcionó para mí, pero se llama "aplicaciones y características" en Windows 10.
PeonProgrammer

No había una carpeta npm en node_modules en mi caso y todo lo que hice fue ejecutar un comando npm install express, repararlo ayudó.
Lalit Fauzdar

¡Gracias por esto! ¡Mi problema se resolvió después de reparar Nodejs en 'aplicaciones y características' en mi PC con Windows!
missjcohen

18

Copie el directorio nombrado npmde la ruta del nodo instalado (en mi caso, el directorio npm estaba disponible en C:\Program Files\nodejs\node_modules).

Navegue C:\Users\%USERNAME%\AppData\Roaming\npm\node_modulesy pegue el npmdirectorio copiado allí.

Este método funcionó para mí cuando tuve el mismo error. . .


3
Gracias, esto funcionó muy bien después de que una actualización estropeó mi instalación de NPM y la reparación y reinstalación no lo solucionó.
Slbox

En qué archivos queremos hacer este cambio.Por favor, guíe
Ibad Shaikh

14

Este no es el mismo caso que en la pregunta, pero podría ser útil para alguien que enfrenta un problema similar. En Windows, si está llamando a npmcomandos desde alguna herramienta de automatización / CI, es posible que se encuentre con el error:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

donde SOME_PATHno es Program Files/...sino algún directorio de proyecto en su lugar. Entonces npm intenta encontrar npm-cli.js dentro del directorio raíz del proyecto en lugar de buscarlo enProgram Files/nodejs .

El motivo es el script npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Esta secuencia de comandos se utiliza %~dp0para buscar npm-cli.js, pero algunas herramientas de automatización pueden configurar el directorio de trabajo de manera que %~dp0apunte al directorio del proyecto local, por lo que la secuencia de comandos funciona incorrectamente.

Una posible solución podría ser cambiar las llamadas npm de este

npm.cmd install

a esto

cmd.exe /c npm.cmd install

Si necesita configurar WorkingDirectory para ejecutar el comando de instalación en un directorio específico, esto no resuelve el problema
Daniel Fisher lennybacon

Lo que funcionó para mí es ejecutar un directorio de cambio con el comando npm después: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Program Files \ nodejs \ npm.cmd "install
Daniel Fisher lennybacon

7

Ninguna de las otras respuestas funcionó para mí.

Esto es lo que escribo (en un shell de git bash en Windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman

7

Encontré el mismo problema con el nodo 8.5 cuando se instaló con nvm. La siguiente solución funcionó para mí

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

Esto funcionó para mí porque el nodo 8.5 no se instaló correctamente antes con nvm. Lo descubrí porque las carpetas y archivos "npm \ bin \ npm-cli.js" no se crearon antes dentro de node_modules.


Mi camino se veía bien; Desinstalar / Reinstalar resolvió el problema por mí.
Mark Maslar

Tuve algunos problemas extraños con el nodo anterior incluso cuando cambié a una versión más nueva. Así que desinstalé el nodo antiguo y volví a instalar el nuevo. De esta manera solucioné el problema con cli :) gracias
Andrej Gaspar

5

En una Mac:

Estaba ejecutando esto desde Maven com.github.eirslett Frontend Plugin cuando tuve el mismo error.

Eventualmente tuve que:

Instale Node.js a través de la descarga del instalador aquí: http://nodejs.org/

Elimina todas las carpetas node/y node_modules/de mi estructura de compilación maven.


2
Parece que esto se solucionó con versiones más recientes del complemento frontend: github.com/eirslett/frontend-maven-plugin/issues/147
Noremac

5

Además de lo anterior tuve que eliminar C:\Users\%USERNAME%\AppData\Roaming\npmtambién. Esto ayudó.


1
En mi sistema, ahí es donde residen los paquetes globales; si lo elimina de la ruta, es posible que ya no pueda ejecutar gulp, etc.
TrueWill

5

No cambie ninguna variable de entorno

Fue el instalador el que causó el problema y no instaló todo el archivo requerido.

Acabo de reparar la configuración de NODEJS en Windows 7 y funciona muy bien. Puede ser que pueda reinstalar, solo en caso de que algo no funcione.


4

En realidad, hay 2 rutas que se agregaron a la variable de su sistema al actualizar a la última versión de nodejs.
1. C: \ Archivos de programa \ nodejs
2. C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin
Para los usuarios de Windows 7/8 / 8.1, no tendrán una GUI inteligente de Windows 10 de variables de entorno.
De todos modos, todo lo que tienes que hacer es buscarlo "C:\Program Files\nodejs\node_modules\npm\bin"y eliminarlo.
Además, elimine "C:\Users\%USERNAME%\AppData\Roaming\npm"de sus variables de entorno. Estoy publicando esta respuesta porque desperdicié mis 10 horas buscando la solución en Internet. Al combinar la respuesta anterior, finalmente supero el problema.



2

Ninguna de las soluciones aquí funcionó para mí, pero después de reiniciar mi sistema y lo hice npm install volver a hacerlo, funcionó. Supongo que uno o más procesos que ejecuté antes lo mantuvieron.

¡El simple reinicio de PC en Windows 10 hizo la magia por mí!


¡Me funcionó a mi también! El error comenzó probablemente después de una actualización de Win10
Arno van Oordt

2

Tuve el mismo problema en Windows. Acabo de reparar Node y funcionó bien después de reiniciar el comando en Windows.


2

Sé que es una publicación anterior, pero mientras escribo esto, la versión de Node js es 12.13.1. Las personas enfrentan esto en general porque es posible que ya hayan instalado una versión anterior de Node js que agregó lo siguiente a la ruta del sistema.

C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin

Sin embargo, las versiones más nuevas deben agregar lo siguiente: -

C: \ Archivos de programa \ nodejs

Quiero decir la ruta donde instaló Nodejs. El valor predeterminado es

C: \ Archivos de programa \ nodejs

Sin embargo, si proporcionó una ubicación diferente, debe señalarla.


1

simplemente ejecute este comando:

npm i npm@latest -g

¡Bienvenido a Stack Overflow! ¿Podría explicar qué hace esto y cómo responde a la pregunta?
anothernode


1

En Windows 10:

  1. Presione la tecla de Windows, escriba editar las variables de entorno del sistema y luego ingrese.
  2. Haga clic en variables de entorno ...
  3. En la mitad inferior de la ventana que se abrió con el título Variables de entorno, verá una tabla titulada Variables del sistema, con dos columnas, la primera con el título variable.
  4. Busque la fila con la variable Path y haga clic en ella.
  5. Haga clic en editar que abrirá una ventana titulada Editar variable de entorno.
  6. Aquí si encuentras

C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin

selecciónelo y haga clic en el botón editar a su derecha, luego edite el campo en la ruta donde tiene la carpeta nodejs, en mi caso, solo lo estaba acortando a:

C: \ Archivos de programa \ nodejs

Luego cerré todos mis terminales cmd o powershell, los abrí nuevamente y npm estaba funcionando.


1

Para los chicos que todavía siguen este hilo:

  • instale el nodo desde el sitio oficial (verifique npm y la versión del nodo para verificar si está instalado correctamente, sí en una nueva terminal / cmd);
  • instale nvm ahora y cuando se le pregunte si administra el nodo actual con nvm, haga clic en sí;
  • abra un nuevo cmd y ejecute nvm en.

No necesita instalar Node desde el sitio oficial con nvm: puede instalar la última versión de Node con nvm en ejecución nvm install latest.
Marco Lackovic

0

Solución para mí en VS2017 (en Herramientas | Opciones ...)

En Herramientas |  Opciones ...

Cambié la ruta a: C: \ Archivos de programa \ nodejs


0

Me encontré con este problema al instalar node9.0.0 en windows7 al final, la solución fue simplemente eliminar npm npm.cmd npx npx.cmd de C: \ Program Files \ nodejs \ node_modules \ npm \ bin antes de hacer esto, una solución fue ejecute C: \ Program Files \ nodejs \ npm, así que esa es una forma, así que vea si tiene el mismo problema que yo.


0

cree una carpeta npm manualmente dentro de node_modules y vuelva a ejecutar el instalador con opciones de reparación. Copia los archivos que faltan.


0

En mi caso, estaba usando nvm-windows 1.1.6 , y actualicé mi versión de nodejs usando nvm install latest, lo que finalmente me dijo que nodejs y npm están instalados, sin embargo, cuando intenté hacerlo npm install, recibí

Error: no se puede encontrar el módulo 'C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin \ npm-cli.js'

al verificar la estructura de nvm-windows, descubrí que C:\Program Files\nodejsestaba %APPDATA%\nvm\NODE_VERSIONenlazado simbólicamente (NODE_VERSION era v9.7.1 en mi caso) que tiene la carpeta node_modulesque no tiene nada adentro, causó este error. La solución fue copiar la npmcarpeta de una de mis versiones anteriores node_modulesy pegarla. Luego actualicé mi npm con npm install npm@next -gy todo comenzó a funcionar nuevamente.


0

Para mí, nada de lo anterior funcionó, solo noté que cada vez que hago un "npm install ..." cualquier comando npm simplemente deja de funcionar. Así que en cada instalación que hago, tengo que ejecutar el programa de instalación de NodeJS y seleccionar "reparar". Hasta que encuentre una solución real :)


Es bueno publicar soluciones y también lo apreciamos ... pero sería mejor si lo explicaras lógicamente en lugar de decirlo
mágicamente

0

Actualizar NPM a la última versión funcionó para mí:

npm install npm@latest -g

0

Cambie la variable de ruta de entorno C: \ Program Files \ nodejs \ node_modules \ npm \ bin y abra el terminal de comandos y npm -v y


0

Encontré exactamente el mismo problema hoy en un servidor Linux. Y la razón es realmente simple, ya que no lo hice make installdespués makee intenté llamar directamente al archivo npm. Por lo tanto, el PATH y todo fue un desastre.

Entonces, para mí, la solución es simplemente hacer make installdespués makey ejecutar lo npminferior .node/bin/npm.


0

Error: no se puede encontrar el módulo 'C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js'

Mira lo anterior y es obvio que el camino tiene problemas. 'C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js' DEBE CAMBIARSE A -> 'C: \ Archivos de programa \ nodejs \ node_modules \ npm \ bin \ npm -cli.js 'lo que significa que "\ node_modules \ npm \ bin" en el medio estaba duplicado, lo que provocó un error tan estúpido. Lo arreglé editando la Variable del sistema y actualicé la RUTA como se describe arriba.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.