前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

webpack回顾篇

首页
2018-11-21 17:40:08
Front-End
webpack优化

基于webpack3

# 一、webpack简介

# 1.1 版本更迭

大版本变化

# 1.2 功能进化

Webpack V1

  • 编译、打包
  • HMR (模块热更新)
  • 代码分割
  • 文件处理

Webpack V2

  • Tree Shaking
  • ES module
  • 动态 Import
  • 新的文档

Webpack V3

  • Scope Hoisting (作用域提升)
  • Magic Comments (配合动态import使用)

版本迁移

V1 -> V2

迁移指南 https://doc.webpack-china.org/guides/migrating/

V2 -> V3

更新升级即可

# 二、webpack核心概念

# 2.1 Entry

  • 代码的入口
  • 打包的入口
  • 单个或多个

写法建议使用键值对写法

module.exports = {
  entry: 'index.js'
}
@前端进阶之旅: 代码已经复制到剪贴板
module.exports = {
  entry: '[index.js','vendor.js']
}
@前端进阶之旅: 代码已经复制到剪贴板
module.exports = {
  entry: {
      index:'index.js'
  }
}
@前端进阶之旅: 代码已经复制到剪贴板
module.exports = {
  entry: {
      index:['index.js','app.js'],
      ve
fe
  • 一、webpack简介
    • 1.1 版本更迭
    • 1.2 功能进化
  • 二、webpack核心概念
    • 2.1 Entry
    • 2.2 Output
    • 2.3 Loaders
      • 2.3.1 常用Loader
    • 2.4 Plugins
      • 2.4.1 常用plugins
    • 2.5 名词
  • 三、初探 webpack
    • 3.1 使用babel打包es6
      • 3.1.1 编译 ES 6/7
    • 3.2 打包 Typescript
    • 3.3 提取 js 的公用代码
    • 3.4 代码分割和懒加载
    • 3.5 处理 CSS 和 CSS 模块化
    • 3.6 PostCSS in Webpack
    • 3.7 Tree shaking
      • 3.7.1 JS Tree shaking
      • 3.7.2 CSS Tree shaking
  • 四、由浅入深Webpack
    • 4.1 文件处理
      • 4.1.1 图片处理
      • 4.1.2 处理雪碧图、base64、压缩图片
      • 4.1.2 处理字体文件
      • 4.1.3 处理第三方 JS 库
    • 4.2 HTML in webpack(自动生成HTML)
      • 4.2.1 生成 HTML
      • 4.2.2 HTML 中引入图片
      • 4.2.3 配合优化
  • 五、Webpack 环境配置
    • 5.1 Webpack Watch Mode
    • 5.2 Webpack Dev Server
      • 5.2.1 Dev Server
      • 5.2.2 proxy代理远程接口
      • 5.2.3 模块热更新
      • 5.2.4 开启调试SourceMap
      • 5.2.5 设置 ESLint 检查代码格式
      • 5.2.6 区分开发环境 和 生产环境
    • 5.3 使用 middleware 来搭建开发环境
  • 六、webpack实战场景
    • 6.1 分析打包结果
    • 6.2 优化打包速度
      • 6.2.1 方法一:分开vendor和app
      • 6.2.2 方法二:UglifyJsPlugin并行处理
      • 6.2.3 方法三:happyPack
      • 6.2.4 方法四:较少babel-loader编译时间
      • 6.2.5 其他
    • 6.3 长缓存优化
    • 6.4 多页面应用
      • 6.4.1 多页面特点
      • 6.4.2 多页面多配置
      • 6.4.3 多页面单配置
  • 七、更多学习

← eslint配置文件详解webpack常用插件总结篇 →