这是我参与「第四届青训营 」笔记创作活动的第11天
webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。
一、什么是Webpack?
本质上是一种前端资源编译、打包工具
文件结构
.
|——src
| ﹂index.js
|——webpack.config.js
1.安装依赖
npm i -D webpack webpack-cli
2.编辑配置文件
module.exports={
//声明入口:要打包的文件
entry:'index.js',
//声明产物出口
output:{
filename:"[name].js",
//项目打包后的存放位置
path:path.join(__diename,"./dist"),
},
module:{
rules:[{
test:/.less$/i,
use:['style-loader','css-loader','less-loader']
}]
}
}
3.执行编译命令
npx webpack
使用Webpack
流程类的配置需要经过entry、resolve、module和target等几个部分。工具类配置又可以细分为开发效率类、性能优化类、日志类等。
Tree-Shaking作用:删掉没有用到的代码。
理解Loader
loader分为less-loader、css-loader和style-loader。
- 为了处理非标准JS资源,设计出资源翻译模块
- 用于将非js资源翻译为标准的js资源
- 心智成本高
- 可维护性低
- 缺少生命力
学习方法
1.入门应用
- 理解打包流程
- 熟练掌握常用配置项、Loader、插件的使用方法,能够灵活搭集成Vue、React、Babel、Eslint、Legg、Sass、图片处理 等工具的Webpack 环境
- 掌握常见脚手架工具的用法,例如:Vue-ci、create-react-app.@angular/cli
2.进阶
- 理解Loader、Plugin机制,能够自行开发Webpack组件
- 理解常见性能优化手段,井能用于解决实际问题
- 理解前端工程化概念与生态现状
3.大师级
阅读源码,理解Webpack编译、打包原理,甚至能够参与共建