node.js - related - npm instala errores con Error: ENOENT, chmod
recordingerror enoent no such file or directory (23)
- Instale la última versión del nodo
- Ejecutar: npm caché limpia
- Ejecutar: npm instalar cordova -g
Estoy tratando de instalar globalmente un módulo npm que acabo de publicar. Cada vez que intento instalar, ya sea desde npm o la carpeta, obtengo este error.
npm ERR! Error: ENOENT, chmod ''/usr/local/lib/node_modules/takeapeek/lib/cmd.js''
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Estoy usando sudo y he comprobado tres veces todo en el paquete, todo debería funcionar. Hice un poco de búsqueda, y vi un par de casos de similer, ninguno de los cuales se resolvió. Esto es lo que intenté.
- Actualizar npm (
sudo npm install -g npm
) - Borre el caché npm global (
sudo npm cache clear
) - Borrar el caché npm del usuario (
npm cache clear
)
Me di cuenta de que el error tenía que ver con el archivo que estoy vinculando a la ruta, específicamente cuando npm intentó hacer un chmod. Eso no debería ser un problema, mi lib/cli.js
tiene permisos normales, y npm tiene permisos de superusuario durante esta instalación.
Después de buscar en los documentos npm encontré una opción que impediría que npm creara los enlaces bin ( --no-bin-links
), cuando intenté la instalación con él, funcionó bien.
Entonces, ¿cuál es el problema? ¿Es esto un extraño error de mariquita que aún no tiene solución?
Editar: como referencia, here está el módulo que cargué
Creo que su script de café compilado no se encuentra en el paquete npm publicado. Intenta escribir un comando prepublish .
Durante la instalación iónica obtuve el siguiente error
115648 error enoent ENOENT: no existe dicho archivo o directorio, cambie el nombre ''C: / Users / UserName / AppData / Roaming / npm / node_modules.staging / ansi-b11f0c4b'' -> ''C: / Users / UserName / AppData / Roaming / npm / node_modules / ionic / node_modules / cordova-lib / node_modules / ansi ''
No había una carpeta llamada ansi
en esa ruta. Lo creé allí y lo instalé correctamente.
El mismo error durante la instalación global ( npm install -g mymodule
) para el paquete con un script no existente.
En package.json:
...
"bin": {
"module": "./bin/module"
},
...
Pero el ./bin/module
no existía, ya que se llamaba modulejs
.
En Windows tuve un error similar. Buscar pegar datos de la aplicación y buscar la cadena npm
.
''npm''
la cadena ''npm''
(incluidas las comillas) por ''npm.cmd''
en atlasboard/lib/package-dependency-manager.js
y atlasboard/lib/cli/commands.js
. Eso solucionó el problema.
En mi caso (código múltiple ENOENT errno 34) el problema era con ~/.npm/
access de directorio. Dentro de él había algunos subdires que tenían root:root
derechos de root:root
, que causaban problemas mientras ejecutaba comandos como usuario normal (sin sudo
). Así que cambié la propiedad de todos los subdires y archivos dentro de ~/.npm/
dir a mi usuario y grupo local. Eso hizo el truco en mi Ubuntu (en Mac debería funcionar también).
$ sudo chown yourusername.yourgroupname ~/.npm/ -R
Debes saber tu nombre de usuario, ¿verdad? Si no, ejecute $ whoami
y sustituya también el nombre de su grupo, así:
$ sudo chown johnb.johnb ~/.npm/ -R
EDITAR:
Caso de prueba :
Desde mi cuenta local /home/johnb
I npm-instaló globalmente algún generador para el yeoman
, como este:
$ sudo npm install -g generator-laravel
Naturaleza del problema :
La acción anterior ocasionó que algunas dependencias se instalaran dentro de ~/.npm/
dir, teniendo root:root
ownership (debido a sudo ...
). Evidentemente, npm no se ejecuta como usuario local (o las dependencias de cambio subdividen la propiedad posteriormente) cuando extrae dependencias y las escribe en un usuario local subdir ~/.npm/
. Mientras npm sea tan descuidado con los problemas fundamentales de seguridad del sistema de archivos UNIX, el problema volverá a ocurrir.
Solución :
Continuamente compruebe si
~/.npm/
contiene subdirectorios con propiedad (y / o permisos) que no sean su cuenta de usuario local, especialmente cuando instala o actualiza algo consodo
(root). Si es así, cambie la propiedad dentro de~/.npm/
a un usuario local recursivamente.Pregúntale a la
npm, bower, grunt, ...
que abordan este problema como lo describí anteriormente.
Estaba obteniendo este error en la instalación de npm y agregando .npmignore no lo resolvió.
Error: ENOENT, stat ''C: / Users / My-UserName / AppData / Roaming / npm''
Intenté ir a la carpeta mencionada y no existía. El error se solucionó cuando creé la carpeta npm en la carpeta Roaming .
Esto es en Windows 8.1
Este problema de alguna manera surgió para mí en Mac cuando estaba tratando de ejecutar npm install -g bower
. Me estaba dando una serie de errores por no poder encontrar cosas como graceful-fs. No estoy seguro de cómo instalé npm originalmente, pero parece que se vino abajo con el nodo usando homebrew. Primero corrí
brew uninstall node
Esto eliminó tanto el node
como la npm
de mi ruta. A partir de ahí acabo de reinstalarlo
brew install node
Cuando se completó tuve node
y npm
en mi camino y pude correr
rm -rf ~/.npm
npm install -g bower
Esto luego instaló la glorieta con éxito.
La actualización de las fórmulas de preparación y la actualización de las instalaciones no me funcionaron, no estoy seguro de por qué. La eliminación de la carpeta .npm
era algo que había funcionado para otras personas, y lo había intentado sin éxito. Lo hice esta vez por las dudas. Tenga en cuenta también que ninguno de los siguientes resuelve el problema para mí, aunque sí para otros:
npm cache clean
sudo npm cache clean
Intenté todas las cosas que encontré en la red ( npm cache clear
y rm -rf ~/.npm
), pero nada parece funcionar. Lo que resolvió el problema fue actualizar el nodo (y npm) a la última versión. Trata eso.
Me encontré con un problema similar,
npm cache clean
resuelto.
Ninguno de los anteriores funcionó para mí. Pero la yarn install
funcionó, luego npm i
comencé a trabajar. ¡No estoy seguro de qué hilo se solucionó, sino una solución rápida y fácil!
Ok, parece que NPM usa tu .gitignore
como base para el archivo .npmignore
, y por lo tanto ignora /lib
. Si agrega un archivo .npmignore
en blanco en la raíz de su aplicación, todo debería funcionar.
[edit] - Más información sobre este comportamiento aquí: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
Por favor, intente esto
SET HTTP_PROXY=<proxy_name>
Entonces prueba ese comando. Funcionará
Puede obtener este error si su node.js está dañado de alguna manera también. Solucioné este error desinstalando / reiniciando / install node.js por completo y corrigió este error, junto con los otros tres misteriosos errores que se producen.
Recibí el error "Error: ENOENT, stat ''C: / Users / userName / AppData / Roaming / npm''. Pero no existía tal directorio. Creé el directorio y la instalación de npm comenzó a funcionar
Recibí este error al intentar instalar un plugin grunt. Encontré que tenía una versión obsoleta de npm y el error desapareció después de actualizar npm a la última versión
npm install -g npm
Recibí un mensaje de error similar al intentar npm install
dependencias. Resulta que algunos de ellos no se instalan en Debian / Ubuntu porque esperan que /usr/bin/node
sea el ejecutable del nodo. Para arreglar, necesitas hacer
sudo ln -s nodejs /usr/bin/node
o mejor aún,
sudo apt-get install nodejs-legacy
Para más información: https://.com/a/21171188/7581
Recientemente me actualicé al nodo 4.2.1 en una máquina con Windows 7 x64. Cuando se ejecuta
npm install -g bower
Tengo un error similar:
npm ERR! enoent ENOENT: no existe dicho archivo o directorio, abra ''C: / Users / THE_USERNAME / AppData / Local / Temp / npm-THE_HASH''
Pensando que estaba relacionado con la ruta AppData, jugué con
npm config edit
y
npm config edit --global
para cambiar los campos prefijo, caché y tmp, pero recibió el mismo error con las nuevas rutas:
npm ERR! enoent ENOENT: no hay tal archivo o directorio, abra ''C: / Users / THE_USERNAME / npm-temp / npm-THE_HASH''
Todos los comandos se ejecutaban como administrador, por lo que tenía permisos completos.
Entonces pensé que había algunos problemas con los archivos existentes, así que ejecuté:
npm cache clean
Pero tengo el mismo error. Sin embargo, todavía había algunos archivos temporales por ahí. La eliminación manual de todos los datos temporales con cygwin finalmente me solucionó el problema:
rm -rf bower bower.cmd node_modules etc
Si solo tiene Windows cmd, podría usar algo como
rmdir /S THE_TEMP_DIR
para eliminar todos los subdirectorios (aunque si tiene dependencias de nodo profundamente anidadas, esto es notoriamente problemático)
Por lo tanto, tal vez haya algunos problemas con la actualización de npm y la existencia de versiones de bower u otros paquetes. En mi caso, ese parecía ser el problema
Si trataste de "hacer la instalación" en el directorio de tu proyecto con este error, puedes intentarlo:
rm -rf ./node_modules
npm cache clear
npm remove sails
entonces puedes intentar "hacer la instalación"
Si tiene el "npm ERR! Enoent ENOENT: no existe tal archivo o directorio, chmod ''... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js''", entonces puede intentar instalar alguna versión anterior de js-beautify, más comentarios: https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": {
...
"js-beautify": "1.6.14"
...
}
y la ejecución "make install". Parece que funciona en caso de que no tenga otras dependencias que requieran una versión superior (1.7.0), en este caso debe degradar estos paquetes también en los packages.json.
o
Tengo un problema similar específicamente: ¡ERR! enoent ENOENT: no existe tal archivo o directorio, chmod ''node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv Probé todas las soluciones anteriores pero no tuve suerte. Estaba usando una caja vagabunda, y el proyecto estaba en una carpeta compartida. El problema parece estar solo allí, cuando muevo el proyecto a otra carpeta no compartida (con host), ¡voilá! problema resuelto. Solo en caso de que otra persona estuviera usando también vagabundo
Tuve el mismo problema, y acabo de encontrar un manejo que no se menciona aquí. Aunque contribuiría a la comunidad:
npm install -g myapp
no estaba copiando el directorio bin
. Encontré esto porque no lo incluí en los files
de mi package.json
"files": [
"lib",
"bin" // this was missing
]
Tuve un problema similar con una causa diferente: el generador de yo node
había agregado "files": ["lib/"]
a mi package.json
y porque mi cli.js
estaba fuera del directorio lib/
, se saltó cuando publicando en npm.
(El problema de Yeoman en https://github.com/yeoman/generator-node/issues/63 debería arreglarse pronto).
npm install
un error similar en la npm install
en una instalación local:
npm ERR! enoent ENOENT: no such file or directory, stat ''[path/to/local/installation]/node_modules/grunt-contrib-jst''
No estoy seguro de lo que estaba causando el error, pero recientemente instalé un par de nuevos módulos de nodos localmente, actualicé el nodo con homebrew y ejecuté la actualización de ''npm -g''.
La única forma en que pude resolver el problema fue eliminar completamente el directorio node_modules local y ejecutar npm install
nuevamente:
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install