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 阶段做了什么 。
推荐阅读
- 科技|2022年七大前沿科技:每一项都能改变世界
- realme|定位新一代“科技国潮”!realme V25官宣将搭载神秘新科技
- 国产|打造出国产7nm GPU!壁仞科技迎一员大将:原NVDIA高管杨超源入职
- 科技前沿|首次100%满功率!我国第二台华龙一号核电站又近一步
- 俞敏洪|俞敏洪进军科技界!新东方成立科技公司:经营范围含集成电路、5G
- 智能手机|科技圈的脱口秀大王?盘点卢伟冰那些年说过的金句
- 冬奥会|北京冬奥会火炬接力点位确定!火炬设计师曾任锤子科技高管
- 科技|可穿透物体内部成像 我国成功研制国际首台高分中子照相机
- 罗永浩|50亿!交个朋友2021年抖音直播带货第一:罗永浩称年后回归科技界
- 罗永浩|“行业冥灯”老罗回归!不做手机、元宇宙 只为科技界
