前端打包
Author: Alla
1. 前端打包工具
gulp, webpack, vite
1.2 对比
- 简单对比
- gulp:
- webpack:
- vite:开发模式的差异
- 打包的简单流程
- 初始化配置
- 项目入口
- 依赖解析
- loader处理
- …
- 开发模式的差异:Vite
- Webpack
- 先打包再启动开发服务器
- 当使用Webpack时,模块要在开发前打包,增加启动、构建时间
- Webpack:Node.js构建的,而Vite基于esbuild构建
- Vite
- 直接启动,并按需动态编译
- 对ES Modules的支持
- ES Modules:主动发起请求获取所需文件
- Vite:开发环境下模块作为浏览器执行的文件,而不像Webpack先打包,再给浏览器执行
- Webpack
1.3 前端工程化的理解
- 框架
- 代码管理 - 版本控制(Version Control)项目开发与管理的标准
- 两种模式
- Lock-Modify-Unlock(锁-修改-解锁)
- 方法
- 用户对某文件修改的话,要先锁定再修改
- 修改完成后再解锁
- 优缺点
- 优点:能避免多人同时修改造成的冲突
- 缺点:减少了用户并发操作
- 版本控制恐惧:VSS(Visual Source Safe)
- 方法
- Copy-Modify-Merge(拷贝-修改-合并)
1.
- Lock-Modify-Unlock(锁-修改-解锁)
- 版本控制器方式
- 集中式版本控制工具
- 中央服务器:拉取pull(fetch)
- 包含
- 版本库在自己的电脑上
- 多人
- 分布式:
- 集中式版本控制工具
- 工具:大多数采用的是分布式
- Git
1. - svn(Subversion):查阅历史操作记录和实现协同开发
- 任意服务器中添加一个SVN版本库
- 具有CVS(Concurrent Versions System)具有数据存储的优点
- 信息资源存储后形成资源树结构
- 便于存储时,数据不会丢失
- Subversion管理随着时间改变
- 中央资料档案库Repository的文件服务器,会记住每一次文件的变动
- 客户端/服务器体系
- 客户端的类型:客户端有两类,一种基于Web的 【WebSVN】,另一种以Tortoise SVN为代表的客户端软件
- SVN存储版本数据
- BDB(一种事物型安全表):服务器中断时,有可能锁住数据
- FSFS(一种不需要数据库的存储系统)
- 优势
- 具有CVS有的数据存储的优点,信息资源存储后形成资源数结构
- 档案库像普通的文件服务器;档案恢复到旧的版本,浏览文件的变动历史
- Subversion:管理任何类型的文件
- 客户端/服务器体系-项目各种版本存储在服务器上
- 个人理解:svn使用比git上传更慢,尽管git指令很复杂
1.
- Git
- 两种模式
- 构建工具
- Webpack
- Parcel
- Gulp
- 代码规范和静态分析
- ESLint:
- Prettier:
- 模块化开发
- ES6模块:
- CommonJS:
- AMD:
- 文档和知识管理
1. - 部署和持续集成
- Jenkins
- Travis CI
- Github Actions
- 自动化测试
- Jest
- Mocha
- Karma
- 代码管理 - 版本控制(Version Control)项目开发与管理的标准
- 性能优化
- 代码管理
- 概念
- 现有项目进行优化升级
- 提高应用访问性能增强架构稳定性
- 大型项目进行工程化架构升级
- 开发工程化脚手架统一底层工作流程
- 提升团队作业协同性
- 提升项目开发、运行的效率
- GC
- 程序工作过程中产生很多垃圾,垃圾是程序