InfoQ科技|从 Angular转到 React,网易严选的前端工程化实践( 四 )
更多 schematics 知识:
优势
和常规的 JavaScript 脚本工具相比 , 它的优势在哪呢?
- 开发便捷
- 易于调试
- 可扩展性和可重用性
- 测试友好
schmatics 提供了完备的测试支持库 , 测试用例书写没有障碍 。
schematics 封装
既然 schematics 处理文件很友好 , 而且刚好能解决文件处理问题 , 于是我们就引入了 schematics 完成文件处理 , 并对它做了一层封装 。
本文插图
- 最底层主要依赖 @angular-devkit/schematics 和 @angular-devkit/core 提供 schematics 基础能力;
- 将公共能力提取到 @schematics/util 方便开发调用;
- 提供 schematics 开发模板 , 方便开发新建 schematics 包;封装 schematics 的 cli , 也就是说它也可以单独调用命令;
- 资源(通用资源、项目改造资源、模板升级资源等)会做一些整合 , 这些资源集合将作为物料维护在物料海 , 将来会跟我们正在开发的物料平台对接;
- 向上暴露所有的命令 , 最终在 @sharkr/cli 作为统一出口 。
本文插图
首先 , 对于开发者来说 , 需要做以下三步:
- 根据 schematics 规范开发一个 schematics 包
- 定义配置项(可选)
- 定义 schema 命令
- 使用 @sharkr/cli 调用 schematics 包
- 输入配置(可选)
- 完成项目修改
- @sharkr/cli 调用 @sharkr/schematics 插件
- schematics 插件解析出自定义配置项 , 生成用户会话
- 根据用户会话拿到 option , 传入 option 调用 Rule 函数
- 修改文件放到暂存区
- 确认修改后更新物理文件
schematics 实践
下面来看一个实际的例子:前段时间我们的项目都需要完成服务上云 , 为了实现上云 , 需要调整下 CI 脚本 , 还要往项目里放一些环境配置文件 , 涉及到多处文件修改和增加 , 所以我们写了一个 @sharkr/ng-cloud-add 的 schematics 包达到快速改造项目的目的 。 以下是效果:
本文插图
核心代码写起来跟写文档类似:
本文插图
以上就讲完了在开发 / 迭代过程中遇到的问题和解决方案 , 最后再看一下 CICD 阶段做了什么 。
推荐阅读
- 材料|百利科技:首家锂电正极材料智慧工厂建成,氢能材料项目稳步推进
- 服务|薪宝科技荣获2020(深圳)人力资源数字化科技大赛二等奖
- 金融营销新视界|拥抱金融科技,中国银行持续提升用户体验!
- 百福地|霸州市百福地科技有限公司 | 用实力打造高品质美容仪器车
- 汽车|用科技俘获用户芳心“智慧”让BEIJING-X7美得更丰满
- 超新星|树木年轮或是超新星影响地球印迹
- 农业|农业无人机初创公司极飞科技宣布完成12亿元融资
- 农业|农业无人机初创企业极飞科技宣布完成12亿人民币融资
- 文库科技标杆|问题解决一半,华为可向高通购买芯片,但不包括5G芯片!
- 科技良辰|大量5G用户吐槽:“换了5G手机,网速比4G还慢”
