WebPack自动化构建
前言
概述:webpack实现前端项目的模块化,旨在更高效地管理和维护项目中的每一个资源
1、项目工程化
- 模块化 (js、css的模块化)
- 组件化 复用现有的UI结构,样式,行为
- 规范化 目录结构、编码规范、接口、git
- 自动化 自动化构建、部署、测试
2、webpack
前端工程化的具体解决方案,提供了友好的前端模块化开发,以及代码压缩混淆、处理浏览器JavaScript的兼容行、性能优化等功能
2.1 安装
1 |
|
在package.json中
dependencies - 生产需要的包,命令中添加-S
devDependencies - dev环境需要的生产不需要的包,命令中添加-D
2.2 配置
- 在根目录中中创建webpack.config.js,并初始化如下配置:
1 |
|
- 在package.json的scripts节点下,新增dev和build
scripts:可运行脚本
1 |
|
- 在终端数据npm run dev完成打包构建
2.3 指定entry和output
默认情况下,打包入口文件为:src -> index.js
默认情况下,打包输出文件为:dist -> main.js
在 webpack.config.js 文件中,通过entry节点指定打包的入口,通过output节点指定打包的出口。
1 |
|
2.4 devServer常用选项
1 |
|
3. webpack-dev-server插件
热更新,自动生成输出文件,安装命令如下
3.1 安装
1 |
|
3.2 配置
- 修改package.json中的配置如下,在webpack后加上server
1 |
|
-
再次运行npm run dev命令
-
如果启动失败,遇到以下问题:
则需要额外安装
1 |
|
3.3 工作原理
webpack会把输出文件放在内存中,所以可以在保存文件后进行打包编译,实现热更新
4. html-webpack-plugin插件
4.1 安装
1 |
|
4.2 配置
修改package.json中的配置如下,在webpack后加上server
1 |
|
4.3 特性
- 将指定的html文件复制到指定目录下
- 注入生成的js文件
5. loader
webpack只能打包js结尾的文件,其他非js结尾的文件由loader打包特定文件,比如:css-loader
当webpack发现某个文件不能处理时,回去找相应的loader处理
5.1 style-loader、css-loader
5.1.1 安装
1 |
|
5.1.2 配置
在webpack.config.js的module -> rules中配置loader规则
1 |
|
5.2 url-loader
5.2.1 安装
1 |
|
5.2.2 配置
在webpack.config.js的module -> rules中配置loader规则
1 |
|
5.3 label-loader
转换处理js中webpack不能处理得一些高级语法
5.3.1 安装
1 |
|
5.3.2 配置
在webpack.config.js的module -> rules中配置loader规则
1 |
|
在根目录下创建babel.config.js,并在此文件中添加可用插件
1 |
|
WebPack自动化构建
https://www.zengzx.xyz/2021/06/01/01.知识架构/front/vue/webPack/