Бочка напильника и встряхивания деревьев - PullRequest
1 голос
/ 23 октября 2019

Вот пример репозитория, который показывает пример проблемы, о которой сообщалось в этой теме: https://github.com/Eux86/tree-shaking-barrel-test/blob/master/README.md

Я пытаюсь понять, каков эффект использования файла Barrel для экспорта функций иклассы из библиотечного проекта при импорте его в другой проект, который использует веб-пакет и должен иметь возможность связывать деревья в связке.

Представьте, что у меня есть проект:

библиотека

  • index.ts

  • libA.ts

  • libB.ts

index.ts имеет следующий код:

export { LibAMain } from 'LibA';
export { LibBMain } from 'LibB';

Поэтому я использую индекс в виде бочкового файла для экспорта всех функций, которые собираюсь разработать в своей библиотеке.

Второй проект будетбыть:

библиотека-пользователь

  • index.ts

Index.ts имеет этот код:

import { LibAMain } from 'library'

LibAMain();

Сейчас:библиотека-пользователь строится с использованием веб-пакета, который, как я ожидаю, сможет связать неиспользуемые библиотеки в MyLib, но когда я смотрю на сгенерированный пакет, я вижу, что он содержитзагрузите LibA.js и LibB.js, которых там быть не должно:

enter image description here

Если я изменю index.ts на:

import { LibAMain } from 'library/lib/LibA'

LibAMain();

тогда webpack делает свою работу хорошо, и я вижу только LibA в последнем пакете:

enter image description here

TL; DR: Как я могу продолжать использоватьиндексный файл барреля и просто импортируйте все из «библиотеки», но при этом все равно работает дерево?

Спасибо за любую помощь:)

...