思想
工程化是一种思想不是某种技术。
现在前端的痛点
- 重复的工作很好,耗时费力,如压缩、打包、上传等
- 代码可维护性差,(可复用的代码到处复制,不能保证代码的一致性,需要更改时,需要挨个改)
- 项目业务线较多时,技术方案不统一,技术复用率低
- 开发人员风格不统一,团队协作规范有时会是口头协定,协作效率低,代码维护困难
面对上述问题,前端工程化应运而生
所谓工程化即系统化、模块化、规范化的一个过程,前端工程化包含模块化、组件化、规范化、自动化四个方面。解决的问题时如何提高编码、测试、维护阶段的生产效率。
模块化
定义:模块化就是将一个大文件拆分成相互依赖的小文件,按一个个模块来划分,再进行统一的管理。
举例:
- JS模块化:使用CommonJS、ES6 Module等组织代码
- CSS模块化:使用less、sass等预处理器组织代码
- 资源模块化:NPM包等
组件化
组件化实现了对一套相关的试图和逻辑的复用,降低重复代码,提高开发效率。
规范化
目标:制定各项规范,便于团队协作和代码维护,提高应用质量
- 统一编码规范、目录创建和文件命名规范
- 开发流程规范
- 文档规范
自动化
目标:提高效率,解放人力,开发人员更加专注应用质量
- 使用构建打包工具、脚手架工具、mock工具等
- CI(持续集成)过程中自动进行质量检测、代码风险统计、质量评估
- CDE(持续交付)过程中自动进行代码功能测试,将测试结果反馈开发者
- CD(持续部署)过程自动部署代码到生产环境