SuperAPI AI 工具集

fix-linter-blind-spots

通用与其它

查看项目

更新于 10-15 23:57

技能介绍

用途:修复 UI5 linter 不报告、但会导致运行时失败的 JavaScript 模式。linter 的 no-globals 规则只检查 JS 中的 sap.* 命名空间,应用自有命名空间的全局赋值、跨模块引用、QUnit 1.x 断言和 sinon 全局 mock 均不在其覆盖范围。这些模式在旧 bootstrap 模型下可用,但在严格 AMD 加载(Test Starter、现代 UI5)下会失败。

范围:扫描所有 .js 文件,包括 webapp/controller、utils、model 等应用源码,以及 test/unit、test/integration、test/opa 等测试文件。仅处理 JS 中的应用命名空间全局;XML 文件中的同类问题由 fix-xml-globals 处理,不在此技能范围。

主要能力:内置检测脚本 node <skill-dir>/scripts/detect-blind-spots.js <project-root>,以字符级扫描区分裸代码中的命名空间与字符串/注释中的出现,输出 findings[]、skipped[] 和 summary。覆盖模式包括:sap.ui.define 中的全局命名空间赋值与返回;跨模块全局引用(已导入改名、未导入、自引用三种子情况);参数名校验;重命名必须配套导入的原子性;QUnit.test 回调缺失 assert 参数;QUnit 全局断言改为 assert 或 Opa5.assert;全局命名空间 mock 改为 sinon.stub;以及 jquery.sap.global 依赖替换为 sap/ui/thirdparty/jquery。

使用方式:先读 manifest.json 获取命名空间,运行检测脚本,按顺序应用模式 1 至 8,模式 1 必须先于模式 2 完成。修复后重跑检测脚本确认 findings 为空,再运行 npx @ui5/linter --details 确认未引入新错误;无法自动修复的项记录到 MODERNIZATION-ISSUES.md。

限制:不处理 XML 中的应用命名空间全局;不处理 sap.* 框架全局的 mock;不在此阶段检测循环依赖,交由 fix-cyclic-deps 处理。window、document、console、sap、jQuery、QUnit、sinon 等已知全局无需导入。具体安装与运行环境要求资料未提供。