Насколько я понимаю, Tree Shaking работает только для модуля ES2015 и Не для модуля CommonJS .
https://webpack.js.org/guides/tree-shaking/

Чтобы проверить это, я создал репо здесь и file1.js с классом MyClass
.
Теперь, если вы попытаетесь экспортировать это как ESM и не будете использовать внутри index.js
- НЕ будет частью вашего пакета.
Но если вы экспортируете его как CommonJS module.exports = MyClass
и не используете - он все равно будет частью вашего пакета.
Та же концепция применима и к Node_Modules.
Модули CommonJS
- axios
- reactjs
ESM модули
- lodash-е
Если вы просто импортируете axios
и не используете его - он все равно будет частью пакета, но неиспользованный lodash-es
не будет.