前端 | 青训营笔记

90 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第7天

为什么要学习Webpack?

  1. 理解前端“工程化”的概念、工具和目标
  2. 一个团队总要有那么几个人熟悉Webpack,某种程度上可以成为个人的核心竞争力
  3. 高阶前端的必经之路

文章目标

  • 理解Webpack的基本用法
  • 通过介绍Webpack功能、Loader与Plugin组件设计,建立一个人知识体系

什么是Webpack?

前端项目由许多资源构成

Webpack本质上是一种前端资源编译、打包工具

  • 多份资源打包成一个Bundle
  • 支持Babel、Eslint、TS、CoffeScript、Less、Sass
  • 支持模块化处理css、图片等资源文件
  • 支持HMR+开发服务器
  • 支持持续监听、持续构建
  • 支持代码分离
  • 支持Tree-shaking
  • 支持Sourcemap
  • ...

Webpack打包核心流程

示例

  1. 安装
npm i -D webpack webpack-cli
  1. 编辑配置文件
                    webpack.config.js
module.exports={
entry:'main.js',
output:{
filename:"[name].js",
path:path.join(__dirname,"./dist"),
},
module:{
rules:[{
test:/\.less$/i,
use:['style-loader','css-loader','less-loader']
}]
}
}
  1. 执行编译命令
npx webpack

Entry→Dependencies Lookup→Transform→Bundle→Output

关键配置项介绍

流程类

工具类

Loader组件

核心功能

把非JS的资源转换成JS的资源

使用Loader

  1. 安装Loader
npm add -D css-loader style-loader
  1. 添加‘module’处理css文件
module.exports={
module:{
rules:[
{
text:/\.css/i,
use:[
"style-loader",
"css-loader"
"less-loader",
],
},
],
},
};

如何学习webpack

入门级:学会灵活应用

  • 理解打包流程
  • 熟练掌握常用配置项、Loader、 插件的使用方法,能够灵活搭建集成Vue、React、Babel、Eslint、Less、Sass、图片处理等工具的Webpack 环境
  • 掌握常见脚手架工具的用法,例如:Vue-cli、create-react-app、@angular/cli

进阶:学会扩展Webpack

  • 理解Loader、Plugin机制,能够自行开发Webpack组件
  • 理解常见性能优化手段,并能用于解决实际问题
  • 理解前端工程化概念与生态现状

大师:源码级理解Webpack打包编译原理

  • 阅读源码,理解Webpack编译、打包原理,甚至能够参与共建