errores de instalación de npm con Error: ENOENT, chmod


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 algunas búsquedas, y vi un par de casos similares, ninguno de los cuales ha sido resuelto. Esto es lo que intenté.

  • Actualizar npm (sudo npm install -g npm)
  • Borrar la caché global de npm(sudo npm cache clear)
  • Borrar el npm de usuario caché (npm cache clear)

Noté que el error tenía que ver con el archivo que estoy enlazando 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 cavar a través de los documentos de npm encontré una opción que evitaría que npm hiciera los enlaces bin(--no-bin-links), cuando probé la instalación con ella, funcionó bien.

Entonces, ¿cuál es el trato? ¿Es esto algún flequillo extraño? case bug ¿aún no tiene solución?

Editar: Para referencia, aquí está el módulo que subí

Author: mikemaccana, 2013-08-01

24 answers

Ok parece que NPM está usando su .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.

[editar] - más información sobre este comportamiento aquí: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

 102
Author: badsyntax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-24 15:51:07

Me encontré con un problema similar,

npm cache clean

Resuelto.

 95
Author: Genjuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-03 15:27:46

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 quizás se cayó con node usando homebrew. Primero corrí

brew uninstall node

Esto removió tanto node como npm de mi camino. A partir de ahí acabo de reinstalar

brew install node

Cuando se completó tenía node y npm en mi camino y fui capaz de run

rm -rf ~/.npm
npm install -g bower

Este entonces instalado bower con éxito.

Actualizar las fórmulas de brebaje y actualizar las instalaciones no parecía funcionar para mí, 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 si acaso. Tenga en cuenta también que ninguno de los siguientes resolvió el problema para mí, aunque lo hizo para otros:

npm cache clean
sudo npm cache clean
 9
Author: user1978019,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-09 23:52:44

Estaba recibiendo este error en la instalación y adición de npm .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é carpeta npm en la carpeta Roaming.

Esto es en Windows 8.1

 9
Author: Vijay Vepakomma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-15 23:08:50

Tuve el mismo problema, y acabo de encontrar un manejo no mencionado aquí. Aunque yo contribuiría a la comunidad:

npm install -g myapp no estaba copiando el directorio bin. Encontré esto porque no lo incluí en el files en mi package.json

"files": [
  "lib",
  "bin" // this was missing
]
 4
Author: dthree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-11 00:26:41

Recibí un mensaje de error similar al intentar npm install un montón de 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, es necesario hacer

sudo ln -s nodejs /usr/bin/node 

O mejor aún,

sudo apt-get install nodejs-legacy

Para más información: https://stackoverflow.com/a/21171188/7581

 3
Author: itsadok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:23

Estaba recibiendo un error similar en 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 qué estaba causando el error, pero recientemente había instalado un par de nuevos módulos de nodo localmente, actualizado nodo con homebrew, y corrió 'npm update-g'.

La única forma en que pude resolver el problema fue eliminar el directorio local node_modules por completo y ejecutar npm install de nuevo:

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
 3
Author: g.carey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-31 00:40:45

Creo que su script de café compilado falta en el paquete npm publicado. Intenta escribir un comando prepublish.

 2
Author: leeway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-01 23:34:59

En mi caso (código múltiple ENOENT errno 34) el problema fue con ~/.npm/ acceso al directorio. Dentro de él había algunos subdirs que tenían derechos root:root, que estaban causando problemas mientras ejecutaba comandos como usuario normal (sin sudo). Así que cambié la propiedad de todos los subdirs y archivos dentro de ~/.npm/ dir a mi usuario y grupo local. Eso hizo el truco en mi Ubuntu (en Mac también debería funcionar).

$ sudo chown yourusername.yourgroupname ~/.npm/ -R

Usted debe saber su nombre de usuario, ¿verdad? Si no, ejecute $ whoami y sustituya el nombre de su grupo con también, así:

$ sudo chown johnb.johnb ~/.npm/ -R

EDITAR:

Caso de Prueba:

Desde mi cuenta local /home/johnb I npm-instalado globalmente algún generador para yeoman, así:

$ sudo npm install -g generator-laravel

Naturaleza del problema :

La acción anterior causó que algunas dependencias se instalaran dentro de ~/.npm/ dir, teniendo root:root propiedad (debido a sudo ...). Evidentemente npm no se ejecuta como usuario local (o cambia la propiedad de subdirs de dependencias después) al extraer dependencias y escribirlas a un usuario local subdir ~/.npm/. Mientras npm fuera tan descuidado contra los problemas fundamentales de seguridad del sistema de archivos unix, el problema volvería a ocurrir.

Solución:

  1. Compruebe continuamente si ~/.npm/ contiene subdirs con propiedad (y/o permisos) que no sean su cuenta de usuario local, especialmente cuando instala o actualiza algo con sodo (root). Si es así, cambie la propiedad dentro de ~/.npm/ a un usuario local recursivamente.

  2. Pregunta npm, bower, grunt, ... comunidad que abordan este tema como lo describí anteriormente.

 2
Author: paperclip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-29 11:22:18

Recibí este error al intentar instalar un plugin de grunt. descubrí que tenía una versión desactualizada de npm y el error desapareció después de actualizar npm a la última versión

npm install -g npm
 2
Author: Prabhu Murthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-04 16:13:39

Tengo un problema similar específicamente : ERR! enoent ENOENT: no hay 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 vagrant box, y el proyecto estaba en una carpeta compartida. Los problemas parecen estar solo allí, cuando muevo el proyecto a otra carpeta no compartida (woth host), voila! problema resuelto. Por si acaso otra persona estaba usando también vagrant

 2
Author: joaco1977,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-02 21:05:58

Probé 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 node (y npm) a la última versión. Prueba eso.

 1
Author: Nikola M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-24 16:49:22

En Windows tuve un error similar. Buscar pegar Datos de la aplicación y buscar la cadena npm.

Reemplacé la cadena 'npm' (incluyendo comillas) con 'npm.cmd' tanto en atlasboard\lib\package-dependency-manager.js como en atlasboard\lib\cli\commands.js. Eso solucionó el problema.

 1
Author: Vinicius Carvalho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-27 17:48:01

El mismo error durante la instalación global (npm install -g mymodule) para el paquete con un script no existente.

En el paquete.json:

    ...
    "bin": {
      "module": "./bin/module"
    },
    ...

Pero el ./bin/module no existía, como fue nombrado modulejs.

 1
Author: hg.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-03 12:40:32
  1. Instalar la última versión de node
  2. Ejecutar: npm cache clean
  3. Ejecutar: npm instalar cordova-g
 1
Author: Dilhan Jayathilake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-10 03:29:34

Puede obtener este error si su nodo.js está corrompido de alguna manera también. Me corrigió este error al desinstalar/reiniciar/nodo instalar.js completamente y se solucionó este error, junto con los otros tres errores misteriosos que se lanzan.

 1
Author: LAdams87,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-26 04:04:50

Encontré un comportamiento similar después de actualizar a npm 6.1.0. Parecía funcionar una vez, pero luego entré en un estado con este error al intentar instalar un paquete que fue especificado por path en el sistema de archivos:

npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename

Las siguientes cosas no solucionaron el problema :

  • rm -rf node_modules
  • npm cache clean (dio npm ERR! As of npm@5, the npm cache self-heals....use 'npm cache verify' instead.)
  • npm cache verify
  • rm -rf ~/.npm

Cómo solucioné el problema :

  • rm package-lock.json
 1
Author: Ian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-12 12:50:16

Tuve un problema similar con una causa diferente: el generador yo node había agregado "files": ["lib/"] a mi package.json y debido a que mi cli.js estaba fuera del directorio lib/, se saltaba cuando se publicaba en npm.

(Yeoman issue at https://github.com/yeoman/generator-node/issues/63 debería arreglarse pronto.)

 0
Author: Nathan Friedly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-06 16:51:59

Estaba recibiendo el error " Error :ENOENT, stat 'C:\Users\userName\AppData\Roaming\npm". Pero no había tal directorio. Se creó el directorio y la instalación de npm comenzó a funcionar

 0
Author: k.iyengar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-29 02:39:50

Recientemente actualizé a node 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 hay tal archivo o directorio, abrir 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH"

Pensando que estaba relacionado con la ruta de 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:

Mnp ERR! enoent ENOENT: no hay tal archivo o directorio, abrir 'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH"

Todos los comandos se ejecutaron como Administrador, por lo que tenía permisos completos.

Entonces pensé que había algunos problemas con los archivos existentes, así que corrí:

npm cache clean

Pero tiene 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 solucionó el problema para mí:

rm -rf bower bower.cmd node_modules etc

Si solo tiene Windows cmd, podría usa algo como

rmdir /S THE_TEMP_DIR

Para eliminar todos los subdirectorios (aunque si tiene dependencias de nodos profundamente anidadas, esto es notoriamente problemático)

Por lo tanto, tal vez haya algunos problemas con la actualización de npm y tener versiones de bower u otros paquetes colgando alrededor. En mi caso, ese parecía ser el problema

 0
Author: Andrew Johnston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-30 16:45:16

Mientras instalaba ionic obtuve el siguiente error

115648 error enoent ENOENT: no hay tal archivo o directorio, renombrar '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 ninguna carpeta llamada ansi en esa ruta. Lo creé allí y se instaló correctamente.

 0
Author: Vijay Mishra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-06 18:13:55

Si ha intentado "make install" en el directorio de su proyecto con este error, puede probarlo:

rm -rf ./node_modules
npm cache clear
npm remove sails

A continuación, puede intentar "make install"

Si usted tiene el " npm ERRAR! enoent ENOENT: no such file or directory, chmod'.../ djam-backend/node_modules/js-beautify/js/bin / css-beautify.js '" entonces puedes intentar instalar alguna versión anterior del 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 paquetes.json.

O

 0
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-18 10:36:14

Nada de lo anterior funcionó para mí. Pero yarn install funcionó, luego npm i comenzó a funcionar. No estoy seguro de qué hilo fijo, pero una solución rápida y fácil!

 0
Author: Todd Hale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-19 21:36:16

Por favor intente esto

SET HTTP_PROXY=<proxy_name>

Entonces intenta eso command.It funcionará

 -11
Author: user3030233,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-02 19:18:43