Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не добавлять в components-lock неиспользуемые компоненты + не встраивать неиспользуемые переводы. #1485

Open
sinelnikov-web opened this issue Nov 12, 2024 · 0 comments

Comments

@sinelnikov-web
Copy link
Contributor

Оптимизация переводов в бандле

Постановка проблемы

Переводы сейчас собираются в один большой объект, чтобы далее встроить его в html.
Сборка переводов происходит тут
Сейчас нет никакой оглядки на то, используются ли у нас в конкретном вебаппе какие-то компоненты и их переводы или нет и собираются все переводы какие можем найти.

Как хотели бы решать проблему с переводами?

Для того, чтобы не встраивать лишние переводы, нам нужно смотреть на то, какие компоненты используются в вебаппе и добавлять только переводы к ним.
Почти всю информацию можно извлекать из построенного components-lock или же из результата вызова функции buildProjectGraph(), но с этим есть некоторые проблемы.

Проблемы components-lock

Допустим у нас есть следующие проекты и наборы "слоёв"
@edadeal/foo-webapp -> @edadeal/core -> @v4fire/client -> @v4fire/core
@edadeal/bar-webapp -> @edadeal/core -> @v4fire/client -> @v4fire/core

Сейчас, при сборке конечного вебаппа(например @edadeal/foo-webapp), в components-lock, попадают компоненты со всех слоёв, в том числе, которые в нашем конечном вебаппе могут вовсе не использоваться.
В примере выше, "проблемными" являются по сути все общие слои между foo-webapp и bar-webapp, т.к. в components-lock обоих вебаппов, попадут все компоненты из общих слоёв.

Решение

Вероятно, мы бы хотели удалять из components-lock все компоненты, со слоёв ниже, которые, не фигурируют в dependencies используемых в вебаппе компонентов.

Проблемы решения

  1. У нас пока нет информации о том, какие модули встраиваются динамически через self.loadModules()
  2. Пока нет понимания, как определить используемость переводов из модулей по типу core/helpers, поэтому их скорее всего придётся оставлять полностью.
  3. Пока нет чёткого понимания, на каком этапе оптимальнее всего искать и удалять из components-lock неиспользуемые компоненты в связи первым пунктом.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant