Импорт модуля Javascript занимает слишком много времени
Я создал проект монорепозитория nodejs, используя tuberepo и шаблон кухонной раковины .
Здесь у меня есть несколько приложений, код, который я собираюсь выпустить, и некоторые пакеты, в основном это общие функции и логика, которые приложения могут использовать, а могут и не использовать.
Это работало хорошо, пока несколько дней назад я не обнаружил странное поведение в некоторых из моих приложений.
Мне нужно внести некоторые изменения в приложение, поэтому я открыл код Visual Studio, запустил
yarn dev
, и я был готов кодировать, но когда я запустил приложение, которое нужно обновить, я заметил, что оно не запускается, обычно это занимает некоторое время, максимум 5 секунд, но на этот раз это заняло до 30-40 секунд с момента выхода из процесса node.
Я пробовал с другим приложением, которое очень похоже, но в чем-то отличается, и я столкнулся с той же проблемой, поэтому я решил создать и очистить набор тестов, чтобы проверить, все ли работает нормально, и это сработало, я означает, что процесс узла не давал сбоев, и я получил ожидаемый результат.
Затем я начал импортировать из пакетов нужные мне модули, и я заметил, что конкретный из них вызывает эту странную проблему.
Этот модуль зависит от других пакетов, и его основная цель — обслуживать классы и функции, которые могут использоваться в приложении.
Проблема в том, что при использовании
import ... from ...
из кода приложения процесс зависает, то иногда он может нормально запуститься, поэтому код выполняется, иногда процесс узла завершается, без сообщения об ошибке и с кодом состояния
0
.
Я пытался использовать
process.on("uncaughtException")
а также
process.on("unhandledException")
но ни один из них никогда не увольняется, segault-handler тоже не помогает, так как ничего не сообщает.
Я проверил код этого модуля, и он не выполняет некоторые функции или не выполняет логику во время импорта, поэтому я не думаю, что это связано с медленно работающими функциями .
У меня есть только одна теория, циклические зависимости, поэтому файл js должен включать другой файл js, который сам включает первый? но я так не думаю, так как код работал нормально.
Я должен использовать резервную копию кода, который у меня есть, когда он работал, но все же у меня есть та же ошибка.
Мне было интересно, ребята, не могли бы вы дать мне несколько советов, как исправить ошибку, или, если у вас была похожая проблема, объясните, как ее решить.