У меня есть собственная библиотека компонентов пользовательского интерфейса. В нем около 40 компонентов. Компоненты находятся в папке sr c, разделенной папками. Составлено babel: BABEL_ENV=production babel src -d lib
. Мой babel.config:
module.exports = function (api) {
api.cache(true);
const presets = [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
'@babel/preset-react',
'@babel/preset-flow'
];
const plugins = [
['transform-imports', {
'@material-ui/core': {
transform: '@material-ui/core/esm/${member}',
preventFullImport: true
},
'@material-ui/icons': {
transform: '@material-ui/icons/esm/${member}',
preventFullImport: true
}
}]
];
return {
presets,
plugins
};
};
Вы можете заметить, что для "встряхивания дерева" я использую плагин transform-import.
Я импортирую эту библиотеку в Create-React-App. Запуская аналитику в моей сборке, кажется, что мой гид по стилю берет большую часть сборки:
Я точно знаю, что не использую большой значок в сборке, Это означает, что веб-пакет не может удалить не импортированный код. Я, очевидно, использую импорт верхнего уровня: import { A } from 'styleguide/lib'
.
Интересно, что мне не хватает. CRA использует веб-пакет 4.41.5. Это проблема в проекте или в библиотеке?