关于网友提出的“ webpack build后生成的app、vendor、manifest三者有何职能不同?”问题疑问,本网通过在网上对“ webpack build后生成的app、vendor、manifest三者有何职能不同?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: webpack build后生成的app、vendor、manifest三者有何职能不同?new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module, count) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
chunks: ['vendor']
})
app.js是入口js,vendor则是通过提取公共模块插件来提取的代码块(webpack本身带的模块化代码部分),而manifest则是在vendor的基础上,再抽取出要经常变动的部分,比如关于异步加载js模块部分的内容。
从截图上看也看出,vendor的文件大小最大,因为其包含了vue整一个框架的代码,以及webpack的模块化代码。
至于manifest的话,主要是一些异步加载的实现方法(通过建立script方式动态引入js),内容上包含异步js的文件名和路径。
之前查过一些资料,主要是js的改动会改变异步加载里面的js文件名,频繁的变动,而相对来说vue库之类的代码,实际上只要编译打包一次就够了,如果只是打包成一个vendor的话,经常变动js会导致vendor重复编译,有点浪费,所以把会重复跟随变动的部分抽离出来作为manifest文件。
这是我的个人理解,有问题请指正哈
上一页 1 2