Babel-загрузчик не играет хорошо с тряской дерева и webpackChunkName
Когда я создаю и у меня есть настройка правил для загрузчика babel, встряхивание дерева не работает (функции, которые я не импортирую напрямую, включены в выходной пакет), а webpackChunkName не работает (динамически импортируемые пакеты с указанием их идентификатора, а не имени, которое я им даю). Оба работают, когда я не использую загрузчик Babel (т.е. меняю test: /\.js$/
в test: /\.HHHHHHHjs$/
).
У меня действительно настроен мой babel config, чтобы не переносить модули, так что webpack может справиться с этим. Я подозреваю, что, возможно, проблема в том, что загрузчик babel удаляет некоторые комментарии, необходимые для веб-пакета, но у меня нет комментариев: false в моей конфигурации babel, и по умолчанию установлено значение true, поэтому я не уверен, как это сделать оставьте комментарии в покое (если это проблема). Я попытался явно установить комментарии: true в моей конфигурации Babel, но это не решает проблему.
--- webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
index: './src/index.js'
},
plugins: [
new HtmlWebpackPlugin({
title: 'silly silly sassy and fresh'
}),
],
output: {
filename: '[name].[chunkhash].js',
chunkFilename: '[name].[chunkhash].js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
}
},
},
{
test: /\.scss$/,
use: [{
loader: 'style-loader' // creates style nodes from JS strings
}, {
loader: 'css-loader' // translates CSS into CommonJS
}, {
loader: 'sass-loader' // compiles Sass to CSS
}],
},
]
}
}
--- конфиг babel из package.json
{
"babel": {
"presets": [
[
"env",
{
"modules": false
}
]
],
"plugins": [
"transform-class-properties",
"dynamic-import-webpack"
]
}
}