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打包进行优化,当某个模块被多个入口模块引用时,它就会被打包多次(在最终打包出来的某几个文件里,它们都会有一份相同的代码).当项目业务越来越复杂,打包出来 ...
随机推荐
- Python 数据的输入
一.单个输入 a=input("输入提示语句")#默认a的类型是字符串 b=input() 二.一行输入两个/三个数据,数据之间用空格间隔开 #a,b的数据类型都是整数 a,b=m ...
- 搭建solr集群的时候出现 ./zkcli.sh:行13: unzip: 未找到命令
主要的原因是: linux系统下面没有安装压缩解压工具 zip 和 unzip:需要我们自己手动的安装: 利用yum命令安装即可: yum install -y unzip zip
- jquery 操作单选框,复选框,下拉列表实现代码
1.复选框全选操作:其实说到底就是对Jquery 选择器的运用,点我查看Jquery选择器 html代码: 复制代码代码如下: <form> 您爱好的运动是: <input type ...
- 引用类型--Function类型(函数声明与函数表达式、arguments.callee、caller、apply、call、bind)
在ECMAScript中函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定 ...
- PHP+swoole实现聊天群发功能
本篇文章主要介绍PHP+swoole实现聊天群发功能,感兴趣的朋友参考下,希望对大家有所帮助. php代码: $serv = new swoole_websocket_server("127 ...
- 吴裕雄--天生自然JAVAIO操作学习笔记:内存操作流、管道流与打印流操作
import java.io.* ; class Send implements Runnable{ // 线程类 private PipedOutputStream pos = null ; // ...
- Linux密码复杂度问题
转:http://hunkz.blog.51cto.com/6157447/1630369
- VUE - vuex state的使用
1,安装 进入项目目录,执行 vue add vuex 命令 2,会在src的目录下新增store文件夹 3,打开store文件夹下的index.js , 给 state 设定一些数据 impor ...
- 多个Activity跳转的小结
第一个例子:demo1 Main—>SecondActivity—>Main 从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main.也 ...
- Spring的AOP开发(基于ApsectJ的注解)
创建项目,导包 编写目标类并配置 创建OrderDao package com.rick.aop.demo1; public class OrderDao { public void save() { ...