Вот пример репозитория, который показывает пример проблемы, о которой сообщалось в этой теме: https://github.com/Eux86/tree-shaking-barrel-test/blob/master/README.md
Я пытаюсь понять, каков эффект использования файла Barrel для экспорта функций иклассы из библиотечного проекта при импорте его в другой проект, который использует веб-пакет и должен иметь возможность связывать деревья в связке.
Представьте, что у меня есть проект:
библиотека
index.ts имеет следующий код:
export { LibAMain } from 'LibA';
export { LibBMain } from 'LibB';
Поэтому я использую индекс в виде бочкового файла для экспорта всех функций, которые собираюсь разработать в своей библиотеке.
Второй проект будетбыть:
библиотека-пользователь
Index.ts имеет этот код:
import { LibAMain } from 'library'
LibAMain();
Сейчас:библиотека-пользователь строится с использованием веб-пакета, который, как я ожидаю, сможет связать неиспользуемые библиотеки в MyLib, но когда я смотрю на сгенерированный пакет, я вижу, что он содержитзагрузите LibA.js и LibB.js, которых там быть не должно:
Если я изменю index.ts на:
import { LibAMain } from 'library/lib/LibA'
LibAMain();
тогда webpack делает свою работу хорошо, и я вижу только LibA в последнем пакете:
TL; DR: Как я могу продолжать использоватьиндексный файл барреля и просто импортируйте все из «библиотеки», но при этом все равно работает дерево?
Спасибо за любую помощь:)