https://zhuanlan.zhihu.com/p/276458191
定义
前端工程化是制定一系列规范,用来提升开发效率、提高开发质量、降低开发难度、减少企业成本、提高用户体验。
内容
- 技术选型:这个方面主要看github的start数量与社区的活跃度,还有团队的学习成本
- 脚手架搭建:需要根据团队业务封装一个初始模板
- 组件库:团队定制化,也可使用基础组件抽象成业务组件库
- libs库:根据团队抽离出的第三方包,包括:工具函数,babel插件等提效工具
- mock:本地mock与远程mock都可以,主要减少联调成本
-
规范
目录结构:根据框架而定
- 编码:eslint、prettier、stylelint
- 技术栈:PC端React、M端Vue
- 接口:RESTful api
- commit message: commit-cli
- git分支管理:git-branch-check + husky
- code Review: 同业务线同学审查
- UI:统一组件库
- 文档:readme格式统一
- 开发流程:开发工具+习惯+技巧
-
构建
预打包:webapck 的 dll 与 externals
- 合并压缩: 减少文件体积与http连接
- 代码分割:加快首屏渲染
- 本地构建缓存:利用babel-loader的cache功能加快本地热更新速度
- source-map:源码定位问题
- 按需引入:esm的静态分析,配合tree-shaking
- 打包速度: 多个子进程打包
- 打包体积:定位优化目标
-
部署
sh脚本:利用scp能力推送到测试服务器
- odin:手动部署
-
测试
单测:jest
- 网站性能测试:lighthouse
-
性能
CDN:根据最近节点分发文件
- 按需加载:组件懒加载
- 本地缓存:协商缓存与强制缓存
- 同步异步加载:修改script标签属性,控制加载方式
- 合并请求:减少tcp连接次数
- 预加载:对将要请求的文件预先加载
-
监控
埋点:pv、uv的统计,特定事件统计
- 指标:fmp,tti,fid等
- 异常:错误处理日志
总结
以上内容可根据现有的项目逐步进行实践,可搭建服务数据中心来进行数据统计,定期进行复盘。