webpack中的chunk
文章类型:webpack
发布者:hp
发布时间:2023-04-18
一:定义
Chunk是Webpack打包过程中,生成的js文件,以文件为单位,一堆module的集合。
打包是从一个入口文件开始,也可以说是入口模块,入口模块引用这其他模块,模块再引用模块。
通过引用关系逐个打包模块,这些module就形成了一个Chunk
module,chunk 和 bundle 是同一份逻辑代码在不同转换场景下的三个名字: 直接写出来的是 module,webpack 处理时是 chunk,浏览器可以直接运行的 bundle
二:产生途径
1:配置 entry 多入口,打包会成多 chunk
2:代码中自动使用 import() 加载模块
3:使用 splitChunks 插件,配置分离规则,webpack 自动将满足规则的 chunk 分离
4:webpack5里可以使用entry下的runtime配置,将webpack的运行时函数如__webpack_require__.f、webpack_require.r这些单独抽离出来分割为chunk
三:总结
1:将应用程序拆分成多个chunk可以提高应用程序的性能。
2:通过按需加载模块,可以减少应用程序的启动时间和资源占用。
3:Webpack提供了一些代码分离的策略,如代码分离插和代码分离点,以帮助开发人员更好地控制chunk的生成和管理。
四:代码演示
const path = require('path');
module.exports = {
entry: {
main: './src/index.js',
vendor: ['react', 'react-dom']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[chunkhash].js',
chunkFilename: '[name].[chunkhash].js'
},
optimization: {
splitChunks: {
cacheGroups: {
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendor',
chunks: 'all'
}
}
}
}
};