代码分割
入口分割
1 2 3 4 5 6
| module.exports = { entry: { app: './src/app.js', vendor: './src/vendor.js' } };
|
动态导入
1 2 3
| import('./module.js').then(module => { });
|
缓存
文件名哈希
1 2 3
| output: { filename: '[name].[contenthash].js' }
|
运行时 chunk
1 2 3
| optimization: { runtimeChunk: 'single' }
|
压缩
Terser
1 2 3 4
| optimization: { minimize: true, minimizer: [new TerserPlugin()] }
|
CSS 压缩
1 2 3 4 5 6 7 8 9
| const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
module.exports = { optimization: { minimizer: [ new CssMinimizerPlugin() ] } };
|
Tree Shaking
1 2 3 4 5 6
| module.exports = { mode: 'production', optimization: { usedExports: true } };
|
分析包大小
1 2 3 4 5 6 7
| const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports = { plugins: [ new BundleAnalyzerPlugin() ] };
|
外部依赖
1 2 3
| externals: { jquery: 'jQuery' }
|
总结
Webpack 优化提升构建性能和用户体验。定期分析和调整。