node.js - Las importaciones de módulos de Javascript tardan demasiado
He creado un proyecto mono-repo de Node.js usando tuborepo y la plantilla kitchen-sink.
Aquí tengo algunas aplicaciones, el código que voy a liberar y algunos paquetes, básicamente son funciones y lógica compartidas que las aplicaciones pueden o no usar.
Funcionó bien, hasta hace algunos días, cuando encontré un comportamiento extraño en algunas de mis aplicaciones.
Tengo que hacer algunos cambios en una aplicación, así que he abierto Visual Studio Code, he ejecutado yarn dev, y estaba listo para programar, pero cuando inicié la aplicación que necesitaba actualizar, noté que no se iniciaba; normalmente toma algún tiempo, como máximo 5 segundos, pero esta vez estaba tardando hasta 30-40 segundos hasta que el proceso de Node se cerró.
He intentado con otra aplicación que es muy similar pero difiere en algunos aspectos, y me he encontrado con el mismo problema, así que he decidido crear una suite de pruebas vacía para comprobar si todo seguía funcionando correctamente, y lo estaba, es decir, el proceso de nodo no se estaba bloqueando y obtuve la salida que esperaba.
Entonces he empezado a importar de los paquetes los módulos que necesitaba, y he notado que uno en particular causa este problema extraño.
Este módulo depende de otros paquetes, y su propósito principal es ofrecer clases y funciones que pueden ser utilizadas desde la aplicación.
El problema es: cuando se usa el import ... from ... desde el código de la aplicación, el proceso se queda colgado, luego a veces puede iniciarse correctamente así que el código se ejecuta, a veces el proceso de node sale, sin un mensaje de error y con un código de estado de 0.
He intentado usar process.on("uncaughtException") y process.on("unhandledException"), pero ninguno de ellos se activa, segault-handler tampoco ayuda ya que no reporta nada.
He revisado el código de este módulo, y no ejecuta algunas funciones ni realiza lógica mientras se está importando, así que no creo que tenga que ver con funciones que se ejecutan lentamente.
Solo tengo una teoría, dependencias circulares, ¿así que un archivo js incluye otro archivo js que a su vez incluye el primero? Pero no lo creo ya que el código solía funcionar perfectamente.
Tengo que usar una copia de seguridad del código que tenía cuando funcionaba, pero aún así, sigo teniendo el mismo error
Me preguntaba, chicos, si podrían darme algunas pistas para arreglar el error, o si tuvieron un problema similar, explicar cómo solucionarlo.