前端工程化
模块化:js代码模块化
组件化:UI结构、样式组件化
webpack的基本使用
创建列表隔行变色项目:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./index.js"></script>
</head>
<body>
<ul> <!-- 输入 ul>li{这是第 $ 个 li}*9 可快速生成-->
<li>这是第 1 个 li</li>
<li>这是第 2 个 li</li>
<li>这是第 3 个 li</li>
<li>这是第 4 个 li</li>
<li>这是第 5 个 li</li>
<li>这是第 6 个 li</li>
<li>这是第 7 个 li</li>
<li>这是第 8 个 li</li>
<li>这是第 9 个 li</li>
</ul>
</body>
</html>
// 1.使用ES6导入语法,导入jQuery
import $ from 'jquery'
// 2.定义jQuery的入口函数
$(function() {
// 3.实现奇偶行变色
// 奇数行为红色
$('li:odd').css('background-color', 'red')
// 偶数行为粉色
$('li:even').css('background-color', 'pink')
})
效果:
代码有兼容性问题,网页跑不起来
安装和配置webpack
-
在项目中安装webpack
npm install 包 -S中-S是 --save的简写, 把安装的包记录在dependencies下,表示这个包在项目开发阶段和上线阶段都需要用到npm install 包 -D中-D是 --save-dev的简写,把安装的包记录在devDependencies下,表示这个包仅在项目开发阶段用到 -
在项目中配置webpack
了解mode可选值
指定webpack的entry和output
自定义打包的入口与出口
问题: 每一次修改源代码,都需要重新npm run dev打包才能看到效果
安装和配置webpack-dev-server这个插件
-
安装
安装有个坑点:
容易附带安装不兼容版本的webpack-cli, 从而导致最后运行
webpack serve时报错,无法成功启动webpack-dev-server最稳妥的安装方法:
先清理掉可能存在的原有版本:
npm uninstall webpack-clinpm uninstall webpack-dev-server再安装我已验证可以成功使用的版本:
npm install webpack-dev-server@3.11.2 -Dnpm install webpack-cli@4.10.0 -D安装完成后,
package.json文件中的devDependencies中各个包的版本应该如此: -
配置
配置完成后,会发现即使控制台中显示发生了热加载,但通过http访问页面还是没有变化。原因如下:
控制台中显示输出文件是在根目录,但其实我们在根目录中根本没有发现
bundle.js这一输出文件,是因为webpack-dev-server为了热加载的高效(快速),将生成文件存放在内存中了,而不是频繁往磁盘写入。根目录中看不到bundle.js文件(不在磁盘中):
尝试在根目录访问bundle.js文件(但在内存中):
所以我们为了方便看到热加载效果,作以下更改:
介绍webpack-dev-server的工作原理
热加载的生成文件在内存中,不写入磁盘,提高热加载效率
安装和配置html-webpack-plugin这个插件
-
安装
运行如下命令安装:
npm install html-webpack-plugin@5.3.2 -D作用是把指定的目录中的文件复制一份放到根目录中
-
配置
了解html-webpack-plugin插件的特性
解惑html-webpack-plugin
了解devServer中常用的选项
说明loader的作用
loader的调用过程:
打包处理css文件:
了解loader调用的过程 与 打包处理css文件
打包处理less文件
less文件:
回顾base64的图片优缺点
使用base64可以减少不必要的网络请求
演示图片loader加载的问题
打包处理样式表中与url路径相关的文件
介绍webpack处理样式的过程
url-loader的limit选项
打包处理js文件中的高级语法
安装babel-loader相关的包
配置babel-loader
配置build命令
配置webpack的打包发布
优化图片和js文件的存放路径
生成的目录结构很乱:
把JavaScript文件统一生成到js目录中:
把图片文件统一生成到image目录中:
修改webpack.config.js中的url-loader配置项,新增outputPath选项即可指定图片文件的输出路径
配置和使用clean-webpack-plugin插件自动删除dist目录
自动清理dist目录下的旧文件
总结发布的主要流程
SourceMap —— 开发模式下如何配置SourceMap
问题:
解决方法:
SourceMap —— 在发布项目的时候出于安全性考虑建议关闭SourceMap
SourceMap —— SourceMap的最佳实践
只定位行数不暴露源码:
定位行数且暴露源码:
最佳实践:
拓展——讲解webpack中@的原理和好处
实际开发中需要自己配置webpack吗?