Неожиданный код после встряхивания дерева

Дано entry это модуль ввода:

Он просто использует function1 от external1 модуль.

Я ожидал что external1.function2 и весь external2 Модуль будет устранен.

Тем не менее, мой вывод включает в себя external2.function1, Просто почему?

Вот репо всего этого.

1 ответ

Встряхивание дерева не работает идеально, поскольку javascript по своей природе является динамическим языком, поэтому иногда он делает пессимистическое предположение, что данный код может использоваться в других местах. во external1 вы импортировали все из external2 через * как xxx из 'external2' - и это предполагает, что данный упакованный модуль может иметь ссылку в другом месте и не удаляет его.

Другие вопросы по тегам