写在前面说得话
首先对大家说声抱歉,我写这篇文章是为了记录学习Webpack,可能原 标题 引起了公愤, 我看视频内容是Webpack 5.0 ,可能新得内容在后面会更新, 所以 标题 定义为 ‘ Webpack 5.0 ’.
如果觉得文章对你收获不大,请各位大佬轻喷。
如果有收获得话,关注以后获取更多技术内容。
如果你是前端程序员的话,相信你会和我 有 一样的感概 ‘ 前端个 丫的, 技术更新太快了, 老子学不动了’
但是现实谁会管你哈,学不动回家养猪去。😭
现在面试除了基础的前端 三大框架外,你还必须得掌握 webpack等前端自动化构建工具。
心想一个前端框架就够学得了,你TM 还出一个 Webpack 来霍霍我们。😱
哎,谁让我们是前端程序员呢,前端技术更新迭代快,这谁也掌控不了,只有紧跟时代,我们技术人才不会被抛弃吧。
小伙伴们的心声
◆ ◆ ◆
兄弟们,干就好了
Webpack 入门

Webpack 定义
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
Webpack 五个 核心概念
entry 入口配置
**入口起点(entry point)**指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。
每个依赖项随即被处理,最后输出到称之为 bundles 的文件中.
可以通过在 [webpack 配置]中配置
entry
属性,来指定一个入口起点(或多个入口起点)。默认值为./src
output 输出路径
output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为
./dist
。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。
loader
loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以将所有类型的文件转换为 webpack 能够处理的有效[模块],然后你就可以利用 webpack 的打包能力,对它们进行处理。
本质上,webpack loader 将所有类型的文件,转换为应用程序的依赖图(和最终的 bundle)可以直接引用的模块。
在 webpack 配置中定义 loader 时,要定义在 module.rules 中,而不是 rules*。*
plugins 插件
简单的说,plugins 就是 用来 处理 loader翻译后的文件,进行更多的操作与执行,从打包优化和压缩,一直到重新定义环境中的变量。
Mode 模式
Webpack 模式分为 开发模式
development
和 生产模式production
,可以启用相应模式下的 webpack 内置的优化

Webpack 初体验
安装 webpack
1. 全局安装
npm i webpack webpack-cli -g
2. 项目 安装 开发 依赖
npm i webpack webpack-cli -D
打包文件
webpack ./src/index.js -o ./build/test.js --mode=development

执行打包后的文件
node ./build/x.js

Webpack 支持 打包js / json 文件, 其它格式通过loader来处理

查看打包后的文件

打包 样式文件 css less sass .....
Webpack 本身是只支持js文件格式的,其它格式文件不能直接处理,它需要经过loader 来处理后,然后使用插件来进行配置处理。
例如下面:使用 loader来 处理样式文件 转js,文件, 原理是, 将样式文件转为字符串,最终转换成Webpack可识别的文件。
loader
处理
在 webpack 的配置中 loader 有两个目标:
test
属性,用于标识出应该被对应的 loader 进行转换的某个或某些文件。use
属性,表示进行转换时,应该使用哪个 loader。loader 使用:
- 下载
- 使用
module: {
rules: [
// 不同文件 必须配置 不同的loader 处理
{
// 匹配哪些文件
test: /\.css$/,
// 使用哪些插件来处理翻译后的文件
use: [
// use 数组 loader 执行顺序 从右到左, 从上到下
'style-loader',
'css-loader'
]
},
{
test: /\.less$/,
use: [
'style-loader',
'css-loader',
// 将less 编译成css 文件
'less-loader'
]
}
]
},
在项目的根目录下 新建一个 webpack.config.js 的 配置文件来 配置Webpack

注意
项目中 用到了哪些loader, 就需要安装对应的loader
loader 的执行顺序为 从右到左, 从下到上, 如果 顺序弄错,会发出警告,编译不成功
不同loader 处理 对应不同的 对象,这些对象都放置在 rules 中。
rules 的每个对象 包括
test
和use
在进行 Webpack 配置后, 可以使用
webpack
来进行打包文件
打包后 开发环境下的代码

测试是否成功 可以引用打包后的文件
显示内容

关注微信公众号 获取更多资料
