Angular-cli: ng serve no detecta cambios de archivo

Creado en 28 sept. 2016  ·  59Comentarios  ·  Fuente: angular/angular-cli

Por favor proporciónenos la siguiente información:

  1. sistema operativo? Windows 7, 8 o 10. Linux (qué distribución). Mac OSX (¿Yosemite? ¿El Capitán?)
    Ubuntu 16.04
  2. Versiones. Ejecute ng --version . Si no se muestra nada, ejecute
    en una Terminal: node --version y pega el resultado aquí:
    angular-cli: 1.0.0-beta.16
    nodo: 6.6.0
    sistema operativo: linux x64
  3. Pasos de reproducción. ¿Era esta una aplicación que no se creó con la CLI? ¿Qué cambio hiciste?
    hacer en su código? etc
    creó un nuevo proyecto nada cambió solo cambió el título
  4. El registro dado por la falla. Normalmente, esto incluye un seguimiento de la pila y algunos
    más información.
  5. Mencione cualquier otro detalle que pueda ser útil.

Al actualizar los archivos de origen, la compilación no actualiza automáticamente la aplicación


¡Gracias! Nos pondremos en contacto pronto.

Comentario más útil

Por mi parte, encontré el problema: el sistema que detecta cambios (inotify) no puede manejar tantos relojes por defecto.
Para cambiar la cantidad de relojes que puede manejar (= la cantidad máxima de archivos que estarán en el proyecto) debe ejecutar este comando:
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
El problema con inotify es restablecer este contador cada vez que reinicia su computadora.
En la versión anterior, había una alerta para indicar que no se podía observar todo el proyecto. Así que sabíamos que teníamos que ejecutar este comando. Ya no es el caso.
Se debe hacer algo, de alguna manera, en algún lugar para que esta detección de archivos siempre funcione de forma inmediata en Linux.

Todos 59 comentarios

Me enfrento al mismo problema, excepto que mi versión angular-cli es 1.0.0-beta.15.
Solía ​​​​funcionar en una versión anterior en la misma computadora

Lo mismo aquí en
Sistema operativo: Windows 10
angular-cli: 1.0.0-beta.16
nodo: 6.6.0

Tal vez un duplicado de # 2356: ¿la ruta a las carpetas de su proyecto incluye un espacio?

@bonnici no, la ruta no tiene espacios ni caracteres especiales. La ruta es /home/harilal/works/ng2/routing/

Para mi sorpresa, después de eliminar global angular-cli y eliminar los módulos nod y reinstalarlos después de limpiar el caché, funcionó. Necesito comprobar si funcionará la próxima vez.

Por mi parte, encontré el problema: el sistema que detecta cambios (inotify) no puede manejar tantos relojes por defecto.
Para cambiar la cantidad de relojes que puede manejar (= la cantidad máxima de archivos que estarán en el proyecto) debe ejecutar este comando:
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
El problema con inotify es restablecer este contador cada vez que reinicia su computadora.
En la versión anterior, había una alerta para indicar que no se podía observar todo el proyecto. Así que sabíamos que teníamos que ejecutar este comando. Ya no es el caso.
Se debe hacer algo, de alguna manera, en algún lugar para que esta detección de archivos siempre funcione de forma inmediata en Linux.

@paillave Creo que eso resolvió mi problema. Ahora los archivos del proyecto se compilan y se actualizan. Pero necesito verificar después de reiniciar el sistema. La última vez que reinstalé angular-cli funcionó. PERO al día siguiente dejó de funcionar. Actualizaré el problema una vez que lo haya probado también.

@harilalinapp fuera de la aplicación angular 2, muchos tienen el mismo problema con inotify, especialmente en ubuntu: http://askubuntu.com/questions/716431/inotify-max-user-watches-value-resets-on-reboot-how- para-cambiarlo-permanentemente ,
Aquí está la solución ... (no sé, esto realmente funciona):
https://bbs.archlinux.org/viewtopic.php?id=193020
o
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

@paillave Gracias por el apoyo. Tengo que ejecutar el comando cada vez que se reinicia. De todos modos funciona gracias.

Gracias, @paillave parece ser un problema en Ubuntu y la solución es

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

como se destaca en
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

Cerrado a favor de https://github.com/angular/angular-cli/issues/1610 , vinculando la solución de @paillave allí.

simplemente elimine espacios y caracteres especiales de todos los directorios raíz del directorio del proyecto (incluido).

@paillave gracias, funciona bien!!

Mismo problema,
CLI angular: 1.0.0-beta.28.3
Nodo: 7.5.0
Sistema operativo: Win32 x64

No hay espacios para la aplicación... aquí está la ruta: c:\dev\myapp

Reinstalé node y angular un par de veces pero nada funcionó.

Tengo un problema similar. Cambiar un archivo .html funciona bien. Al cambiar un archivo .ts, el compilador se dispara pero al recargar no hay cambios.

Lo mismo aquí que @raducostea cuando se cambia el archivo .ts, el compilador se dispara, pero el Hash (en la terminal) es el mismo que antes del cambio de archivo. Uso Webstorm 2016.3.3 en Win 7 x64. También intenté reinstalar, establecer un nuevo proyecto.

A mi me pasa lo mismo, el html toma los cambios pero el .ts no

Creo que el problema está en WebStorm. Webpack watch no funciona si el archivo no se guarda directamente. Intente desactivar la opción 'Escritura segura' (Configuración | Apariencia y comportamiento | Configuración del sistema | Usar "escritura segura" (guardar cambios en un archivo temporal). Después de este cambio todo funciona bien para mí.

Es un error en la última CLI. Ejecute el siguiente comando en la carpeta de su proyecto:
npm install --save @ngtools/ [email protected]
y
ng servir

Y debería funcionar bien

@toni8810 , ¡gracias!

@ toni8810 gracias!

@toni8810 ¡Gracias! Solucionado el problema. Supongo que querremos eliminar esa versión específica una vez que se solucione el error en la próxima versión. ¡Gracias de nuevo!

Esto se solucionó para mí en la última versión de @ angular/cli.

@raducostea gracias!

He notado un extraño error de sensibilidad a mayúsculas y minúsculas.
Mi mayúsculas y minúsculas era incorrecta, por ejemplo ( export * from './MyHeader' ), en lugar de ( export * from './myHeader' ). Se compilaría y renderizaría sin errores, pero ng serve no detectaba cambios en los archivos.

Revisé la última versión (beta 30) y no detecta cambios en un módulo compartido con carga diferida sin la solución npm install --save @ngtools/[email protected]

Enfrenté el mismo problema en Ubuntu 16.04 y angular CLI 1.0.0-beta.30

El problema estaba relacionado con Inotify Watches Limit en Linux.
Para resolver el problema, aumenté el límite de relojes a 512K

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p --system

Después de eso, reinicié mi IDE (WebStorm en mi caso) y luego la detección de cambios comenzó a funcionar.

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p --sistema

Eso soluciona el problema para mí. Gracias @ulymor!

Mi carpeta node_modules contiene 27487 archivos en total, mientras que los otros archivos de origen cuentan con un total de 372. Sospeché que Webpack también estaba escuchando cada archivo en esta biblioteca, lo cual es una tontería ya que nunca cambian.

Pude solucionar el problema sin tener que cambiar la configuración de mi sistema cambiando tsconfig.json para excluir node_modules :

{
    "compilerOptions": {
        ...
    },
    "angularCompilerOptions": {
        ...
    },
    "exclude": [
        "node_modules"
    ]
}

Mi IDE también usa relojes inotify, así que me aseguré de que ignorara el directorio node_modules para que no usara demasiados relojes inotify.

Es probable que no desee aumentar fs.inotify.max_user_watches a medio millón.

Cada observador de archivos ocupa 1 kB de memoria del núcleo (no intercambiable). Medio millón de esos relojes ocuparía 512 MB de RAM, que ningún otro programa puede usar. El método anterior también podría solucionar su problema sin sacrificar tantos recursos del sistema.

Tuve este problema y también descubrí que estaba recibiendo una advertencia de WebStorm acerca de que inotify estaba configurado en bajo. Se vinculó a esto: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit que lo solucionó para mí en Ubuntu 16.04

Me topé con este problema al intentar que la detección funcionara en una máquina virtual Vagrant (Ubuntu 16.04). Este complemento funcionó perfectamente para mí desde el primer momento sin comandos adicionales: https://github.com/mhallin/vagrant-notify-forwarder

¡Espero que esto ayude a alguien más!

He notado cambios detectados solo en métodos o variables existentes, no se detectan nuevos métodos y variables. Espero que los demás también tengan los mismos problemas.

tengo el mismo problema,

mac OS Sierra
Versión 10.12.5
npm 5.3.0
@angular/cli: 1.2.1
nodo: 8.0.0

Gracias

Tengo el problema similar,
Nuevos métodos en el archivo ts no reflejados,

@angular/cli: 1.3.2
nodo: 8.4.0
sistema operativo: win32 x64
@angular/animaciones: 4.3.6
@angular/común: 4.3.6
@angular/compilador: 4.3.6
@ angular/núcleo: 4.3.6
@angular/formularios: 4.3.6
@angular/http: 4.3.6
@angular/plataforma-navegador: 4.3.6
@angular/plataforma-navegador-dinámico: 4.3.6
@angular/enrutador: 4.3.6
@angular/cli: 1.3.2
@angular/compilador-cli: 4.3.6
@angular/servicio de idioma: 4.3.6

¿Alguien sabe la solución?

¿Alguien que no sea @filipesilva puede continuar esta discusión en otro hilo? Esto no está funcionando. https://github.com/angular/angular-cli/issues/8033#issuecomment-336305650

gracias ...

También estoy enfrentando el mismo problema. ng serve no se vuelve a cargar cuando se realizan cambios en un modelo de directorio en particular. Además de esas clases de modelo, está detectando los cambios.
Ejecuté el comando ng --version y obtuve este resultado.

@angular/cli: 1.3.2
nodo: 6.11.2
sistema operativo: win32 x64
@angular/animaciones: 4.4.3
@angular/cdk: 2.0.0-beta.11
@angular/común: 4.4.3
@angular/compilador: 4.4.3
@ angular/núcleo: 4.4.3
@angular/formularios: 4.4.3
@angular/http: 4.4.3
@angular/material: 2.0.0-beta.11
@angular/plataforma-navegador: 4.4.3
@angular/plataforma-navegador-dinámico: 4.4.3
@angular/enrutador: 4.4.3
@angular/cli: 1.3.2
@angular/compilador-cli: 4.4.3
@angular/servicio de idioma: 4.4.3

Por favor, ayúdame a solucionar este problema..

Estoy usando angular-cli 1.6.3 y tengo el mismo problema, pero solo el código de mi directiva tiene este problema. Traté de modificar el código, eliminé el código por completo, reinicié mi escritorio pero el servicio ng siempre carga el código de directiva anterior.

use npm start me ayuda a solucionar el problema

El viernes 29 de diciembre de 2017 a las 6:39 a. m., shilu911 [email protected] escribió:

Estoy usando angular-cli 1.6.3 y tengo el mismo problema, pero solo mi
el código de la directiva tiene este problema, traté de modificar el código, eliminar el
código completamente, reinicie mi escritorio pero el servicio ng siempre carga el antiguo
código de directiva


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/angular/angular-cli/issues/2389#issuecomment-354383080 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AXwY3tbm5dxUWNnuZNi_zNjObrftMmVOks5tFDvigaJpZM4KIrXk
.

--
Gracias y Saludos

Ajith

Tuve este problema recientemente, cuando trabajaba con webstorm, y para mí era extraño e inconsistente. Estaba cambiando entre v1.6.5 y 1.6.6 para ver si 1.6.6 rompía algo, sin embargo, no pude identificar ningún comportamiento consistente...

Después de investigar, descubrí que inotify maneja los relojes de archivo en ubuntu, y encontré este artículo que me ayudó a resolver mi problema.

https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit

@jeanpaulattard gracias, también me ayuda con PhpStorm

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p --sistema

este comando funciona pero tengo que hacerlo cada vez que se reinicia el sistema

estoy usando ubuntu 16.04 de 64 bits

CLI angular: 1.7.3
Nodo: 8.9.4
sistema operativo: linux x64
Angular:
...
npm :5.6.0
nodo: v8.9.4

@angular/cli: 1.2.4
nodo: 8.9.4
sistema operativo: linux x64
@angular/animaciones: 4.3.0
@angular/cdk: 2.0.0-beta.10
@angular/común: 4.3.0
@ angular/compilador: 4.3.0
@ angular/núcleo: 4.3.0
@angular/formularios: 4.3.0
@angular/http: 4.3.0
@angular/material: 2.0.0-beta.10
@angular/plataforma-navegador: 4.3.0
@angular/plataforma-navegador-dinámico: 4.3.0
@angular/enrutador: 4.3.0
@angular/cli: 1.2.4
@angular/compilador-cli: 4.3.0

Tengo este problema no en Linux sino en una máquina con Windows 10 y VS Code. Cualquier solución para esa plataforma?

mismo problema con MacOS 10.13.3. Después de una corrección de error de mecanografiado, la mayoría de las veces necesito reiniciar angular-cli para forzar la recompilación

tengo el mismo problema,

SO: Linux Mint 18.3 Sylvia
CLI angular: 1.7.4
Nodo: 8.11.1
npm: 6.0.0

@paillave gracias amigo me has rescatado :+1: :thumbsup:

@owlstack @salehasadi @harilalinapp ¿Se resolvió este problema en Windows? ¿Alguien puede ayudar? ¡Cualquier ayuda es muy apreciada! ¡Gracias!

Tengo el mismo problema en Windows 10 e intenté excluir los enormes node_modules en tsconfig.json, pero aún aparece la pantalla anterior. Veo que el archivo mecanografiado no se convierte en un .js actualizado

me funciona @paillave , estaba trabajando con Linux CentOs 7; nodo -v: v8.11.3; npm -v: 5.6.0

Tengo el mismo problema en Kubuntu 18.04 , npm 5.6.0 , node 8.11.4 , Angular CLI: 6.1.5 .
Confirmo que la solución @vignesh007vicky funciona bien: https://github.com/angular/angular-cli/issues/2389#issuecomment -377191808, gracias.

¡ sudo ng serve funciona!

¡ sudo ng serve funciona!

Mismo problema en Linux Mint 19 y no funcionó con Visual Studio Code y nano , Firefox 62 o Chromium 69

  • node v8.10.0
  • npm 6.4.1
  • angular/cli 6.2.4

La solución de @chapultepec me funciona, así que no era un problema de nodo, npm, navegador, editor... Ahora recuerdo haber usado sudo ng serve , simplemente lo olvidé :sweat_smile:

Lo mismo aquí (los cambios de HTML se reconstruyen automáticamente, los cambios de TS no suceden). Estoy usando Ubuntu 18.04 con vscode versión 1.29.1. La respuesta de @chapultepec me funciona bien, pero NO DEBEMOS tener que hacer esto... Gracias @chapultepec.

¡ sudo ng serve funciona!

Angular CLI: 6.2.8
Node: 8.10.0
OS: linux x64
Angular: 6.1.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.8.8
@angular-devkit/build-angular     0.8.8
@angular-devkit/build-optimizer   0.8.8
@angular-devkit/build-webpack     0.8.8
@angular-devkit/core              0.8.8
@angular-devkit/schematics        0.8.8
@angular/cdk                      7.1.1
@angular/cli                      6.2.8
@angular/material                 7.1.1
@ngtools/webpack                  6.2.8
@schematics/angular               0.8.8
@schematics/update                0.8.8
rxjs                              6.2.2
typescript                        2.9.2
webpack                           4.16.4

¡Tener el mismo problema con @angular/cli": "^7.2.0" !
Editar: resuelto eliminando los directorios de salida e invalidando el caché de IntelliJ.

Tuve el mismo problema al trabajar en Vagrant vm en Ubuntu 16.04 LTS.

Angular CLI: 6.0.8
Node: 11.10.0
OS: linux x64
Angular: 6.1.7

Probé todas las soluciones, aumentando los relojes de notificación, usando --watch reinstalando npm y node. Nada funcionó.
Esto es lo que me solucionó. agregando --poll=2000 así:

ng serve --poll=2000 --host 0.0.0.0

Si está usando Vagrant y el complemento fs-notify no funciona, también tuve suerte especificando explícitamente chokidar para la encuesta:

export CHOKIDAR_USEPOLLING=true && ng serve ...

Obviamente, puede configurar esa variable de entorno en cualquier lugar, pero para una VM desechable es rápido y sucio simplemente agregarla al script npm.

Ubuntu 18.04

Delete node_modules and run npm install again.

@toni8810 ¡¡Gracias!! :+1:

Este problema se ha bloqueado automáticamente debido a la inactividad.
Presente un nuevo problema si encuentra un problema similar o relacionado.

Obtenga más información sobre nuestra política de bloqueo automático de conversaciones .

_Esta acción ha sido realizada automáticamente por un bot._

¿Fue útil esta página
0 / 5 - 0 calificaciones