模块化可以说是当下最重要的前端开发范式之一。随着前端应用的日益复杂,我们的项目代码已经逐渐膨胀到了不得不花大量时间去管理的程度了。而模块化就是一种最主流的代码组织方式,它通过把复杂的代码按照功能的不同划分为不同的模块单独维护,从而提高开发效率、降低维护成本。
但是单就「模块化」这个词而言,它仅仅是一个思想或者说是一个理论,并不包含具体的实现。
本课程中我们就一起学习如何在前端项目中去实践模块化思想,以及目前行业中主流的一些方式和工具。
其中 Webpack 算是目前的佼佼者,也是市面上的主流。这两年 Webpack 的使用率直线上升,Vue.js、React、Angular 一类框架的脚手架工具都开始使用 Webpack 来做底层代码的构建。
这里我们会从:
- 模块化演变过程
- 前端模块化的一些规范和标准
- 常用的模块化打包工具
- 使用技巧
希望大家能够通过以上这几个维度去深入了解模块化以及 Webpack 的具体实践和应用。
适用人群
有一些简单前端开发经验,希望深入学习模块化开发及 Webpack 打包工具的同学
知识储备:
- 熟练使用 HTML、CSS
- 掌握 JavaScript 语言基础
- 了解 React、Vue.js 之类的框架更佳
学习目标
- 了解模块化思想
- 认识模块化在前端行业中的演变过程
- 掌握 ES Modules 标准以及不同环境的支持情况
- 掌握 Webpack 打包工具的使用
- 理解 Webpack 工作过程的内部原理
课程内容
- 模块化概述
- 模块化演变过程
- 模块化规范的出现
- 模块化标准规范
- ES Module 特性
- ES Module 导出
- ES Module 导入导出的注意事项
- ES Module 导入用法
- ES Module 导出导入成员
- ES Module 浏览器环境 Polyfill
- ES Module in Node.js - 支持情况
- ES Module in Node.js - 与 CommonJS 交互
- ES Module in Node.js - 与 CommonJS 的差异
- ES Module in Node.js - 新版本进一步支持
- ES Module in Node.js - Babel 兼容方案
- 模块打包工具 - 由来
- 模块打包工具 - 概要
- Webpack 快速上手
- Webpack 配置文件
- Webpack 工作模式
- Webpack 打包结果运行原理
- Webpack 资源模块加载
- Webpack 导入资源模块
- Webpack 文件资源加载器
- Webpack URL 加载器
- Webpack 常用加载器分类
- Webpack 与 ES2015
- Webpack 加载资源的方式
- Webpack 核心工作原理
- Webpack 开发一个 Loader
- Webpack 插件机制介绍
- Webpack 自动清理输出目录插件
- Webpack 自动生成 HTML 插件(上)
- Webpack 自动生成 HTML 插件(中)
- Webpack 自动生成 HTML 插件(下)
- Webpack 插件使用总结
- Webpack 开发一个插件
- Webpack 开发体验问题
- Webpack 自动编译
- Webpack 自动刷新浏览器
- Webpack Dev Server
- Webpack Dev Server 静态资源访问
- Webpack Dev Server 代理 API
- Source Map 介绍
- Webpack 配置 Source Map
- Webpack eval 模式的 Source Map
- Webpack devtool 模式对比(上)
- Webpack devtool 模式对比(下)
- Webpack 选择 Source Map 模式
- Webpack 自动刷新的问题
- Webpack HMR 体验
- Webpack 开启 HMR
- Webpack HMR 的疑问
- Webpack 使用 HMR API
- Webpack 处理 JS 模块热替换
- Webpack 处理图片模块热替换
- Webpack HMR 注意事项
- Webpack 生产环境优化
- Webpack 不同环境下的配置
- Webpack 不同环境的配置文件
- Webpack DefinePlugin
- Webpack 体验 Tree Shaking
- Webpack 使用 Tree Shaking
- Webpack 合并模块
- Webpack Tree Shaking 与 Babel
- Webpack sideEffects
- Webpack sideEffects 注意
- Webpack 代码分割
- Webpack 多入口打包
- Webpack 提取公共模块
- Webpack 动态导入
- Webpack 魔法注释
- Webpack MiniCssExtractPlugin
- Webpack OptimizeCssAssetsWebpackPlugin
- Webpack 输出文件名 Hash