webpack散记---提取公共代码
(1)作用:
减少代码冗余
提高加载速度
(2)来源
commonsChunkPlugin
webpack.optimize.CommonsChunkPlugin
(3)配置
{
plugins:[
new webpack.optimize.CommonsChunkPlugin( option )
]
}
(4)options里的参数
options.name /options.names
options.filename //公用文件的打包名
opyions.minChunks //是数字的话:代表你提取公共代码的次数
options.chunks //提取代码的范围
options.children
options.deepChildren
options.async //创建异步的公共代码刘
(5)场景
单页应用
单页应用 + 第三方以来
多页应用+ 第三方依赖 +webpack生成代码
npm init npm install webpack --save-dev //把webpack安装到本地 --因为chunk是webpack自带的
局部的webpack给项目的依赖做使用 (1)webpack.config.js
var webpack = require('webpack')
var path = require('path') module.exports = {
entry:{
'pageA ':'./src/pageA',
'pageB':'./src/pageB'
}, output:{
path:path.resolve(_dirname,'./dist'),
filename:'[name].bundle.js',
chunkFilename:'[name].chunk.js'
}, plugins:[
new webpack.optimize.CommonsChunkPlugin({
name:'common',
minChunks:2
})
] }
//想把lodash和vender打包在一起
module.exports = {
entry:{
'pageA':'./src/pageA',
'pageB':'./src/pageB',
'vender':['lodash']
},
output:{
path:path.resolve(__dirname,'./dist'),
filename:'[name].bundle.js',
chunkFilename:'[name].chunk.js'
},
plugins:[
new webpack.optimize.CommizeChunkPlugin({
name:'common', //还是分开打包
minChunks:Infinity, //2
chunks:['pageA','pageB']
}),
new webpack.optimize.CommizeChunkPlugin({
name:'vendor', //把lodash和vender打包在一起
minChunks:Infinity //不需要任何重复
}),
new webpack.optimize.CommizeChunkPlugin({
name:'mainifest', //把lodash和vender打包在一起
minChunks:Infinity //不需要任何重复
}),
new webpack.optimize.CommizeChunkPlugin({
names:['wendor','manifest'], //把lodash和vender打包在一起
minChunks:Infinity //不需要任何重复
})
]
}
webpack散记---提取公共代码的更多相关文章
- webpack配置提取公共代码
公共代码提取功能是针对多入口文件的: 背景:在pageA.js和pageB.js中分别引用subPageA.js和subPageB.js webpack.config.js文件: var path = ...
- webpack CommonsChunkPlugin 提取公共代码
1.项目结构 2.部分代码 module.js console.log('module.js'); index文件夹下的index.js require('../module.js'); consol ...
- webpack学习笔记--提取公共代码
为什么需要提取公共代码 大型网站通常会由多个页面组成,每个页面都是一个独立的单页应用. 但由于所有页面都采用同样的技术栈,以及使用同一套样式代码,这导致这些页面之间有很多相同的代码. 如果每个页面的代 ...
- [转] 用webpack的CommonsChunkPlugin提取公共代码的3种方式
方式一,传入字符串参数 new webpack.optimize.CommonsChunkPlugin(‘common.js’), // 默认会把所有入口节点的公共代码提取出来,生成一个common. ...
- 详解用webpack的CommonsChunkPlugin提取公共代码的3种方式(注意webpack4.0版本已不存在)
Webpack 的 CommonsChunkPlugin 插件,负责将多次被使用的 JS 模块打包在一起. CommonsChunkPlugin 能解决的问题 在使用插件前,考虑几个问题: 对哪些 c ...
- 基于webpack实现多html页面开发框架六 提取公共代码
一.解决什么问题 1.如果a.js和b.js都引用了common.js,那在打包的时候common.js会被重复打入到a.js和b.js,造成重复打包 2.单独打包common.js对性能有帮助,浏览 ...
- webpack4 系列教程(三): 多页面解决方案--提取公共代码
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...
- 记webpack下提取公共js代码的方法
环境: webpack4.6 + html-webpack-plugin 多页面多入口 经多次研究,稍微靠谱可用的配置 optimization: { splitChunks: { minSize: ...
- webpack优化之玩转代码分割和公共代码提取
前言 开发多页应用的时候,如果不对webpack打包进行优化,当某个模块被多个入口模块引用时,它就会被打包多次(在最终打包出来的某几个文件里,它们都会有一份相同的代码).当项目业务越来越复杂,打包出来 ...
随机推荐
- 第1节 kafka消息队列:3、4、kafka的安装以及命令行的管理使用
6.kafka的安装 5.1三台机器安装zookeeper 注意:安装zookeeper之前一定要确保三台机器时钟同步 */1 * * * * /usr/sbin/ntpdate us.pool.nt ...
- tomcat安装apr报错解决
参考http://www.cnblogs.com/nuccch/p/7598361.html 1.no c complie 安装gcc解决 2.rm: cannot remove `libtoolT' ...
- Windows篇:文件对比软件->"DiffMerge"
文件对比软件->"DiffMerge" DiffMerge是什么? 如果没有DiffMerge! 想想一下,有两篇10000字的文章,找不同,眼睛都要看花吧.有了DiffMe ...
- question1 赋值运算操作符
注意的问题书上讲的很详细了 下面是代码实现,但是VS有一个问题,strcpy安全性较低,虽然可以通脱编译,但是运行会报错,提示用strcpy_s()替代,但是,这里用strcpy()替代也不行, // ...
- Raspbian设置静态ip
Raspbian static ip 最近入手了树莓派4b,并更具官方教程安装了Raspbian.由于直接通过wifi连接,每次ip跳来跳去很不方便,于是便想着设置静态ip. 由于Raspbian本身 ...
- SpringBoot整合MyBatis获得插入数据后获取主键,返回值总是1
xml里的写法 <insert id="insertLogin" parameterType="com.xyt.p2p.pojo.LoginInfo" k ...
- Unity ShaderLab 学习笔记(一)
因为项目的问题,有个效果在iOS上面无法实现出来- 因为shader用的HardSurface的,在android上面跑起来没有问题- 以为在iOS上也不会有问题,但是悲剧啊,技能效果一片漆黑- 而且 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-muted" 类的文本样式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- hdu 1874 畅通工程续(SPFA模板)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- POJ 1027:The Same Game 较(chao)为(ji)复(ma)杂(fan)的模拟
The Same Game Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5168 Accepted: 1944 Des ...