SuperAPI AI 工具集

sapui5-linter

编程与开发

查看项目

更新于 10-15 15:45

技能介绍

SAPUI5 Linter 技能面向使用 UI5 Linter(@ui5/linter)对 SAPUI5/OpenUI5 应用与库进行静态代码分析的场景。当需要添加或运行 @ui5/linter、配置 UI5 lint 规则、准备 UI5 2.x 迁移、自动修复已弃用 API/全局变量/manifest 问题、生成 CI 报告,或排查 ui5lint 解析、性能与配置问题时,可使用本技能。

主要能力:UI5 Linter(@ui5/linter)是专为 SAPUI5 和 OpenUI5 项目设计的静态代码分析工具,可在升级到 UI5 2.x 前识别兼容性问题、已弃用 API、安全隐患和最佳实践违规。它可检测 19 类问题,包括已弃用 API、全局变量使用和 CSP 违规;支持对常见问题自动修复(no-globals、no-deprecated-api、manifest 属性);支持 JavaScript、TypeScript、XML、JSON、HTML 和 YAML 文件;支持可配置的忽略模式和文件定向;提供 stylish、JSON、Markdown、HTML 多种输出格式;性能较快,依项目规模约 1-40 秒。当前版本 1.22.0(经 npm 于 2026-06-14 验证)。官方仓库为 https://github.com/UI5/linter。

使用前提:Node.js v20.11.x、v22.0.0 或更高版本;npm v8.0.0 或更高版本。可用 node --version 与 npm --version 验证。

安装方式:全局安装(推荐用于 CLI 使用)npm install --global @ui5/linter;本地安装(推荐用于项目集成)npm install --save-dev @ui5/linter。安装后可用 ui5lint --version 验证,应输出 1.22.0 或更高。

基本用法:在项目根目录运行 ui5lint 以 lint 整个项目;可指定文件或目录,如 ui5lint "webapp/**/*.js"、ui5lint "webapp/controller/" "webapp/view/";使用 ui5lint --details 显示发现问题的详细信息。

开发工作流示例:先用 ui5lint --details 检查问题;用 UI5LINT_FIX_DRY_RUN=true ui5lint --fix 预览自动修复;再运行 ui5lint --fix 应用修复;用 git diff 审查变更;最后再用 ui5lint --details 验证修复结果。

配置:可创建 ui5lint.config.{js|mjs|cjs},在 rules 中设置规则级别(如 no-deprecated-api、no-globals、no-ambiguous-event-handler、no-outdated-manifest-version 设为 error),在 exclude 中排除 dist/、node_modules/ 等路径。可按环境变量区分生产与开发配置,例如生产环境为 error、开发环境为 warn。

CLI 命令:ui5lint 基本 lint;ui5lint --details 详细输出;ui5lint --fix 修复可自动修复问题;ui5lint --format json 输出 JSON 供 CI/CD 使用;ui5lint --format html --details 生成 HTML 报告;ui5lint --perf 进行性能监控。

规则概览:涉及异步与现代模式(async-component-flags、prefer-test-starter)、安全(csp-unsafe-inline-script)、事件处理(no-ambiguous-event-handler,支持自动修复)、弃用检测(no-deprecated-api、no-deprecated-component、no-deprecated-control-renderer、no-deprecated-library)、全局使用(no-globals,支持自动修复;no-implicit-globals)、错误报告(parsing-error、autofix-error)、API 使用(ui5-class-declaration、unsupported-api-usage)以及 Manifest 现代化(no-outdated-manifest-version、no-removed-manifest-property,支持自动修复)。完整规则参考见 references/rules-complete.md。

与开发流程集成:可在 package.json 中配置 scripts,如 lint、lint:fix、lint:details、lint:ci、lint:report,并将 @ui5/linter 加入 devDependencies。

常见场景:新建 UI5 项目时可安装 linter、创建配置、添加 npm 脚本、运行初始 lint、修复可自动修复问题并审查剩余问题;为 UI5 2.x 迁移做准备时可运行 linter 找出所有问题、优先处理关键问题、应用自动修复、查阅 autofix 限制文档、手动修复不支持的 API、处理 Core API 问题、更新 manifest 至 v2、修复 manifest 版本与属性问题并验证全部解决。

适用场景与限制:适用于 SAPUI5/OpenUI5 项目的静态检查、迁移准备和 CI 集成。已知限制包括:无法将同步模式转换为异步模式;Core/Configuration API 自动修复有限(约 50 个 API);jQuery.sap API 支持仅限基本方法;不会自动发现 Node.js 模块。

最佳实践:尽早并频繁运行;使用配置文件保存持久设置;逐步修复(先错误后警告,每步后审查与测试);记录被抑制的规则;集成到 CI/CD(错误时使构建失败,允许警告,为相关方生成报告);持续监控 lint 性能。

参考资料与模板:内置 references/rules-complete.md、references/autofix-complete.md、references/performance.md、references/support-and-community.md、references/contributing.md,以及 templates/ui5lint.config.mjs、templates/package.json.template、templates/husky-pre-commit.template。相关技能:sap-dependency-security,用于加固依赖管理以支持 UI5 linting 工具链升级及插件/工具链锁文件控制。