Angular 2 Cli No detecta cambios en los archivos

La interfaz de linea de commandos para Angular, presenta bajo ciertas condiciones un problema para detectar los cambios en los archivos cuando estos superan el limite de capacidad definido, ¿Qué Sucede? y ¿Como? solventarlo rápidamente es lo que veremos a continuación.

Antes de Iniciar recordemos que, AngularJS (comúnmente llamado Angular.js o AngularJS 1), es un framework de JavaScript de código abierto, mantenido por Google, que se utiliza para crear y mantener aplicaciones web de una sola página. Su objetivo es aumentar las aplicaciones basadas en navegador con capacidad de Modelo Vista Controlador (MVC), en un esfuerzo para hacer que el desarrollo y las pruebas de software sean más fáciles.

Angular (comunalmente llamado “Angular 2+” o “Angular 2“) es la evolución de AngularJS aunque incompatible con su predecesor.

El Angular CLI es una herramienta para inicializar, desarrollar, escalar y mantener aplicaciones Angular.

Una de las bondades que Angular2 CLI posee es el re-compilado automático, funcionalidad que agiliza el desarrollo de tus soluciones. Cuya funcionalidad esta activa de forma automática cuando se ejecuta ng serve.

El inconveniente que podrías tener cuando tu proyecto crezca, es que de forma inexplicable dejara de detectar los cambios que apliques y no se recompilara el proyecto, obligandote a detener el proceso y volver a ejecutar ng serve.

Este inconveniente se ha observado en OS específicamente en Linux  y distribuciones derivadas de Ubuntu; se desconozco si para otros distribuciones se presenta el mismo comportamiento.

 

¿Qué Sucede?


¿Que sucede? en Angular2 CLI, esto pasa porque se apoyan en Inotify, el cual es un subsystem que permite monitorear cambios en archivos y directorios del sistema operativo.

Aparentemente inotify tiene una cantidad limitada de archivos que puede estar monitoreando, por lo tanto cuando tu proyecto crece y supera este numero de archivos, simplemente pierde el control sobre estos.

La solución que han probado colegas y ha funcionado a la perfección, surge de cambiar el valor máximo de archivos que puede monitorear inotify.

El cambio se aplica por medio de la consola y con permisos de administrador, agregando al archivo sysctl.conf la variable correspondiente que utiliza inotify.


echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf

Luego para recargar o leer el nuevo parametro, simplemente reinicia el equipo y tendrás resuelto el inconveniente o ejecuta:


sudo sysctl -p

 

Estudiante de la vida, buscando aprender…
Tu solo pregunta, si no tengo la respuesta… ya NO preguntaras solo…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *