458 - 《RFC:强约束迭代》
发布于 2024年7月24日
刚写的一个 RFC。
背景
现在强约束分几类,
1、依赖类,比如不能使用 redux 依赖
2、代码类,比如对语法、行数、文件的检查
3、配置类,有些配置太灵活,不让用
在 2022 版的强约束实现里,Umi 4 的插件里新增了几个 API,专门用于检测类,
1、api.onCheck
,提供专门的检测阶段,做任意的自定义检测
2、api.onCheckConfig
,做配置检测
3、api.onCheckPkgJSON
,做 package.json 检测
4、api.onCheckCode
,提供 file、code、import 和 export 信息等,做代码级检测
注:在强约束规则里,其实并不需要对 ast 做操作,所有信息都是前置分析完成的。
问题
1、强约束不能独立跑,这导致的问题是,比如,1)不能在流程平台、CI 平台里跑和产出结果日志
2、切换到 Mako 后部分强约束条件失效,这导致的问题是,比如,1)有些用户切换到 Mako 后由于一些原因要切回 Webpack,就可能会触发