myLazyModule.
myLazyModule тянет "жирные" зависимости из папки libs.
appModule в myApp тянет один "лёгкий" компонент из папки libs.
я не понимаю, почему если я использую npm-scope для импортов в appModule, то вместе с "лёгким" компонентом в бандл main.js прилетает все компоненты из папки libs. (при этом lazy chank myLazyModule не весит почти ничего) но если написать абсолютный путь в импорте appModule для "лёгкого" компонента, то в main.js ничего лишнего не падает, всё как я и ожидаю попадает в myLazyModule chank.
объясните, может импорты в Nx так и задуманы?
похоже что твоя либа не тришейкится
не, при билде тришейкинг отрабатывает. вопрос в том, что компонент из либы, который используется только в lazy chank-e всё равно попадает в main, а в чанке остаётся только код самого модуля (он весит очень мало по сравнению с зависимостями и смысл грузить его лениво теряется)
а этот компонент в отдельном модуле?
и он только подключается в лейзи модуле?
скоупы не влияют на то, как бандл соберется, они строят граф зависимостей чтобы ты на этапе разработки не протекал логикой из одного слоя в другой. Проверь, нет ли у тебя в коде основного модуля зависимостей от либ — помимо тех, что в лези-модуле подключены?
сейчас получается, что влияет. создано "пустое" приложение. с одним роутом. и как только в appModule приложения я импортирую любой модуль из либы используя npm-scope - вся либа летит в main.js. исправляю импорт на абсолютный путь - всё становится норм
стой. ты импортишь модуль из либы, или лезилоадишь другой модуль, в котором подключена либа?
оба варианта. я импорчу из либы "лёгкий" компонент (его модуль) в appModule. а "тяжёлый" компонент загружаю в роуте. но когда используется npm-scope оба модуля (точнее вся либа, но тришейкингом как я понимаю всё выпиливается кроме двух модулей) летят в main. а в lazy чанке остаётся только код самого модуля (пара килобайт)
Обсуждают сегодня