前端工程化

前段时间给同事们做了一次技术分享《前端工程化》,我总觉得全程讲的磕磕巴巴的,感觉没有把精髓同步给小伙伴们,虽然他们都说我讲很好,还可以之类的,但是一次分享的重点和精髓没有传达到位的话,那我觉得应该是失败的。

强迫症患者又上线了,把之前的讲义再梳理下,下次有机会分享就可以讲的再透彻一些了

什么是前端工程化

概念

狭义上的理解:将开发阶段的代码发布到生产环境,包含:
1、构建
2、分支管理
3、自动化测试
4、部署

广义上理解:前端工程化应该包含从编码开始到发布,运行和维护阶段
在这里插入图片描述

意义

在这里插入图片描述

内容

在这里插入图片描述在这里插入图片描述

四个维度

组件化

特别是对于我们这些做sass平台的互联网公司,一站式解决“人、财、物、事”数字化难题,做的都是类似于OA办公系统的管理平台,每个页面长的都差不多,
太需要一些组件块,拼接成工厂模板的页面了,这样就像搭积木一样,随意组装就可以快速的出页面,实现一键搭建网站的初衷

从UI拆分下来的每个包含模板(HTML)+样式(CSS)+逻辑(JS)功能完备的结构单元,我们称之为组件
组件化≠模块化。模块化只是在文件层面上,对代码或资源的拆分;而组件化是在设计层面上,对UI(用户界面)的拆分。
在这里插入图片描述
1、 FormFactory 纯表单渲染 扩展按钮(查询、重置、开票等)
2、TableFactory 纯表格渲染列表分页等功能、支持tag分标签下的表格展示
3、FooterBar 底部悬浮Button(提交、下一步、取消等)
4、DescriptionFactory 详情页面的字段展示列表
5、SectionHeader 头部描述title,以及扩展按钮(新增、导出、下载等)
6、TabsList标签页组件

模块化

模块化就是将一个大文件拆分成相互依赖的小文件,再进行统一的拼装和加载

Webpack

在这里插入图片描述在这里插入图片描述

webpack是一个现代JS应用程序的静态模块打包工具,将项目当作一个整体,通过一个给定的主文件,webpack将从这个文件开始找到你项目所有的依赖文件,使用loaders处理它们,最后打包成一个或多个浏览器可识别的js文件

入口(entry)

入口起点(entry point) 指示 webpack 应该使用哪个模块,来作为构建其内部 依赖图(dependency graph) 的开始。
在这里插入图片描述

输出(output)

output 属性告诉 webpack 在哪里输出它所创建的 bundle,以及如何命名这些文件
在这里插入图片描述

loader

loader 让 webpack 能够去处理那些非JS文件,毕竟webapck和浏览器只认识解析js

loader有两个属性
1、test属性:识别出哪些文件会被转换
2、use属性:定义出在进行转换时,使用哪个loader
在这里插入图片描述
在这里插入图片描述

插件(plugins)

plugins可以打包优化,资源管理,注入环境变量。想要使用一个插件
在这里插入图片描述
常见的plugins:
在这里插入图片描述
点击查看更多webpack官网

JS模块化在这里插入图片描述
CSS模块化

在这里插入图片描述

资源模块化

在这里插入图片描述

规范化

规范化其实是工程化中很重要的一个部分,项目初期规范制定的好坏会直接影响到后期的开发质量。
在这里插入图片描述
比如:

  • 目录结构的制定:有助于提高项目的逻辑结构合理性
    在这里插入图片描述
  • git分支管理
  • 文档规范、命名规范
  • JS、CSS规范
  • 前后端接口规范、响应格式封装(axios拦截器)
  • 编码规范:制定一套良好的编码规范可以增强团队开发协作、提高代码质量。
  • code review机制

人家京东凹凸实验室开源了一套前端规范的网站,想了解端规范细则的可以点击查看前端代码规范

自动化

  • 图标合并
  • 持续集成(jenkins/docker/now/github)
  • 自动化构建
  • 自动化部署
  • 自动化测试

四个阶段

1、库/框架选型

市面上主流的框架主要是react和vue,之前我整理了自身使用过的一些框架以及使用体验,(React/Vue/Next/Umi)框架对比

2、简单构建优化

(Grunt/gulp/webpack)选择一种构建工具,对代码进行压缩,校验,之后再以页面为单位进行简单的资源合并,说实话我只使用过webpack,所以也不敢对其他的构建工具指指点点,哈哈

3、JS/CSS模块化开发

JS模块化方案很多,AMD/CommonJS/UMD/ES6 Module等

4、组件化开发、静态资源管理

封装页面模板组件、静态资源CDN服务器

以上就是前端工程化的一些见解,最近又发现了一个大佬的博客,他的博客里详细的讲解了前端工程化的相关内容,超级赞,点击查看更多前端工程化三十八讲

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值