У меня есть файл, в который я экспортирую несколько констант с массивами дочерних элементов, которые называются icons.js.
В другом файле реакции назовем его CloseButton.js. Я только импортирую
import { cross } from './icons.js';
и когда я запускаю webpack с включенным производственным режимом, все остальные значки также импортируются (объем экспорта const icons.js составляет около 100 КБ, но одна строка не должна быть больше 1 КБ) в транспилированный CloseButton. js.
Я использую webpack 4.30.0 с @ babel / preset-env и @ babel / preset-react.
webpack.config.js
const config = {
entry: './CloseButton.js',
output: {
filename: 'CloseButton.js',
},
plugins: [],
module: {
rules: [
{
test: /\.js/,
use: {
loader: 'babel-loader',
options: {
presets: [['@babel/preset-env', {
modules: false
}], '@babel/preset-react']
}
}
}
]
},
mode: 'production'
};
module.exports = config;
Я протестировал запуск той же установки, но только экспорт строк из icons.js
, а затем код правильно исключал мертвый код.
Кто-нибудь знает, есть ли способ экспортировать только «крестик» из файла icons.js без создания отдельного файла для каждого компонента реакции, определенного в icons.js?
Я протестировал удаление всех ссылок на const
s, которые экспортируются как компоненты React из icons.js, и это работает, но это не позволяет мне экспортировать значки.
/icons/cross.js
, тогда вам не нужно беспокоиться о раскачивании деревьев. Небольшие поддерживаемые файлы javascript в конечном итоге имеют и другие преимущества. - person Keith   schedule 23.04.2019export icon1; export icon2;
и т. Д., А не как - ›export default icons
- person Keith   schedule 23.04.2019export const icon1;
,export const icon2;
. - person kachiem   schedule 24.04.2019"sideEffects": false
в конфиге? - person Keith   schedule 24.04.2019