webpack代码提取公共部分。

var webpack=require('webpack')
var path=require('path')

module.exports={
entry:{
'pageA':'./src/pageA',
'pageB':'./src/pageB',
'vendor':['lodash']

},
output:{
path:path.resolve(__dirname, './dist'),
filename:'[name].bundle.js',
    chunkFilename: "[name].chunk.js"
},
plugins:[
   new webpack.optimize.CommonsChunkPlugin({
        name:'vendor', // name是提取公共代码块后js文件的名字。
       minChunks:Infinity //这里是把js代码和插件代码打包在一起了,因为两个js都要用,然后打包后的文件有lodash,还有那三个引用js

}),

new webpack.optimize.CommonsChunkPlugin({
        name:'manifest',
        minChunks:Infinity //这是是为了把webpack的代码和插件的代码区分开
    })

]

}
这是添加了vender的,没加之前是有pageA,和pageB,然后引入subpagea,和subpageb,nodule。然后生成了个common.bundle.js里面就有了
代码的重复块,提取出了代码重复快。subpagea,和subpageb,noduleminChunks:2就是配置的重复代码的提取。后面又添加一个插件,但是打包以后代码混在了一起
new webpack.optimize.CommonsChunkPlugin({
        name:'common',
        minChunks:2//这是最开始两个js文件提取公共代码的配置,后面改了改成了第三方插件代码的和js文件的提取公共代码,但是太码放,想给两个代码分开。
    })

 随便说下逻辑最开始有

'pageA':'./src/pageA',
'pageB':'./src/pageB',
最开始只有这两个js,但是这两个js都引入了subpageb,subpageA,module.然后执行上面那个代码 name:'common',minChunks:2就可以打包了。生成了common.bundle的打包文件,里面

就有subpageb,subpageA,module后面又增加了个插件代码,配置name:'vendor', // name是提取公共代码块后js文件的名字。minChunks:Infinity然后就打包好了个包含插件和公共代码
的js文件,但是插件太大。不太好,处理一下。就有了name:'manifest',name:'manifest',就是分离公共代码和插件代码,下来再看看详情。
 



猜你喜欢

转载自www.cnblogs.com/manu-yyj/p/9297391.html