FairyTaleComposer
@FairyTaleComposer

Что я делаю не так для того, чтобы удалить ненужные экспорты с помощью webpack 5?

У меня есть один модуль по типу библиотеки, то есть в нём набор функций, объектов и пара констант. Всё, что в нём есть, всё экспортируется. Есть "конечный" файл, в который импортируются только некоторые объекты и функции из первого модуля-"библиотеки".

"Конечный" файл также указан в конфиге вебпака как входная точка. После сборки вебпаком я вижу в бандле не только то, что импортировано, но и всё остальное, что было в модуле-"библиотеке".

Я пробовала указывать в конфиге вебпака -
optimization: {
   usedExports: true,
 },

затем в package.json - "sideEffects": false, и я так понимаю, что оба способа должны решать мою задачу. Но по отдельности они ничего вообще не делают в моём случае. И только если их совместно указать, то вебпак хотя бы обозначил неиспользуемые модули таковыми, но не удалил. И режим продакшна его не смутил.

Удаляет ли неиспользуемые экспорты вебпак 5 версии сам по себе, или для этого нужны дополнительные плагины?

Дополнительная информация:
В конфиге вебпака у меня указан mode: 'production'. Babel не использую, у меня просто ES6 модули.
Сейчас протестировала вариант с usedExports: true в режиме разработки, всё же вебпак указывает unused harmony exports сейчас и при отсутствии строчки sideEffects: false.
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
FairyTaleComposer
@FairyTaleComposer Автор вопроса
Выяснила, в чём было дело. Я на специальном полупустом проекте тестировала сборку, на маленьких модулях, буквально из пары функций\объектов, пытаясь повторить ту же ошибку. Дело было в моём коде, а не в сборке. У меня был объект, в котором содержатся ссылки на DOM-элементы. И, очевидно, вебпак воспринимает это как модуль с "побочным эффектом" и не вытряхивает его. В итоге, я выделила конкретно этот модуль в отдельный файл, решив вопрос таким образом. Остальные модули вроде бы нормально вытряхиваются.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы