为什么使用webpack?
拆包-->允许按需加载
Plugin-->适应大型项目
Loader-->定制资源包
webpack核心概念--Module
Module模块
- js
- css,font,images...
函数写法:
var mod1 = function() {
};
对象写法:
var mod2 = {
init: function() {
}
};
立即执行函数:
var mod3 = (function(win) {
})(window);
webpack核心概念--Chunk
Chunk块
- Many small modules combined
- Entry Chunk,Output Chunk,Common Chunk
webpack核心概念--定位
Module Loader(模块加载器)
Module bundler(模块打包工具)
- browserify
- webpack
特点:
- 浏览器中加载入口及依赖
- 执行入口及依赖代码
- 分析及合成模块系统
- 生成文件束(bundle/chunk)
webpack配置
- entry:源文件
- output:生成文件
- loader:编译文件
- plugins:插件
- resolve:文件路径指向
编译资源
将源文件编译成浏览器能识别的代码:
- es6-->es5
- image-->base64
- sass/less-->css
- etc...
提高构建速度
- 将大型库外链
- 将库预先编译
- 减少构建搜索或编译路径
- 缓存
- 并行