# @abap2ui5/linter 中文文档

规范地址：https://npmcn.com/package/%40abap2ui5/linter/

版本：0\.9\.0
npm 元数据更新时间：2026-10-14T09:08:21.186Z
中文译文更新时间：2026-11-06T05:50:00.424Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40abap2ui5/linter
原文对照：https://npmcn.com/package/%40abap2ui5/linter/?lang=original
项目主页：https://github.com/abap2UI5/linter#readme
源码仓库：https://github.com/abap2UI5/linter

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.3 MB，44 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：@abap2ui5/linter-render \>=0\.8\.0 \<0\.10\.0，@abap2ui5/render-runtime \>=0\.1\.0 \<0\.8\.0
- 首次发布：2026-08-15T11:01:37.604Z
- 最新版本发布：2026-10-14T09:08:20.690Z
- 近 30 天下载量：4653（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

在没有SAP系统的情况下验证 abap2UI5 应用类:ABAP及其所构建的视图,一起检查.

## 安装

```sh
npm install @abap2ui5/linter
```

也可以使用：`pnpm add @abap2ui5/linter`、`yarn add @abap2ui5/linter`、`bun add @abap2ui5/linter`

## README

# abap2UI5 插头

**验证没有 SAP 系统的 abap2UI5 应用类** 国家综合倡议、图书馆和 GitHub 动作取自 [样本控制](https://github.com/abap2UI5/samples-controls),其中,他们 保护生成的 UI5 演示包样本的端口( 有多少个在其中 ) 那个仓库的 [状况](https://github.com/abap2UI5/samples-controls/blob/main/STATUS.md) —— 说 它每周增长, 和一个数字 写在这里是一个数字去停滞.

它检查一个 **整个应用类**,而不仅仅是它发出的XML:ABAP源和 它所建的视图被验证在一起。 最重要的缺陷是 生活在两者之间者——其ABAP领域不包含的有约束属性 已存在, 控件从不提供的事件参数—— 且 UI5 工具无法 看他们,因为视图只在运行时存在.

```sh
npx @abap2ui5/linter src
```

这就是它的全部:没有安装,没有SAP系统,没有配置。 ~600 kB 键 并且没有依附关系,所以上面的行是快的.

```
src/zcl_my_app.clas.abap
  36:14  error  sap.m.Page has no aggregation contentt - typo?                       unknown-aggregation
  40:22  error  sap.m.Button type="Emphasised" is not a valid value (allowed: ...)   invalid-property-value
```

然后,当你想要它保持绿色:

```sh
npm install -D @abap2ui5/linter                     # pin it for CI and for your machine
npx --no-install abap2ui5lint --init                # write a commented abap2ui5lint.jsonc
npx --no-install abap2ui5lint src --all-classes     # every class: the ones that build no view get the source-side rules
npx --no-install abap2ui5lint src --watch           # run, then re-run on every save - the loop for Eclipse ADT + abapGit
npx --no-install abap2ui5lint --explain unknown-control   # what a reported id means, with the before/after pair - in the terminal
```

`--no-install` 故意: `abap2ui5lint` 是命令软件包 安装,而不是软件包名称,以及空的 `npx abap2ui5lint` 运行在哪里 不安装软件包将下载以该名称发布的任何内容 时间npm。 没有安装, 请使用范围 `npx @abap2ui5/linter …`。 。 。 .

## 文档

**→ [圆柱形,满地都是](https://abap2ui5.github.io/docs/advanced/linter.html)** 两道门和每道门都捕到什么, `--screenshot`, (中文(简体) ), `--fix`放弃, 在已有的编码库上通过该编码的基线 文件、 GitHub 动作、 徽章和库 API.

**→ [规则参考](https://abap2ui5.github.io/linter/)** 每一个规则 id与 解释其含义和存在原因的段落。 身份证印在 发现的结尾是锚.

另外两个切入点:

|  |  |
| --- | --- |
| [添加渲染门](https://abap2ui5.github.io/docs/advanced/linter.html#the-render-gate) | `npm i -D @abap2ui5/linter-render` + 键 `npx playwright install chromium` - 无头人 `XMLView.create` 捕捉到一个无法 _装入_ |
| [启动项目](https://github.com/abap2UI5/app-template) | 已连接的CLI、配置和工作流程 |

## 可移植应用程序( opt- in)

Abap2UI5应用在UI5前端运行,无论它写什么. 留着它 可由 **非UI5 前端** 以及——UI5网络组件前端 (单位:千美元)[前端网络组件](https://github.com/abap2UI5/frontend-webcomponent), (中文(简体) ), 适配出卡制造器、代理设备——要求 `portable-app` 规则:

```jsonc
// abap2ui5lint.jsonc
{
  "rules": { "portable-app": "error" }   // or "warning" / "hint"; off by default
}
```

它报告Abap2UI5协议之外的一切 [便携式配置文件 v1](https://github.com/abap2UI5/protocol/blob/main/profiles/portable.md)数字 : - 控制及其未列出的成员, `z2ui5.cc` 自定义控件, 名称 模型和其他约束形式,表达体构造在其语法之外 (单位:千美元)`RegExp`, (中文(简体) ), `odata.*`),事件参数,例如 `$event`前端动作 例如 `CONTROL_BY_ID`,以及嵌入式取景槽(`nest_view_display( )`) (中文(简体) ). 每个发现名称的原因 [规则卡](https://abap2ui5.github.io/linter/#portable-app) 全部列出 该简介为协议的逐字记录 `profiles/portable-v1.json` 内 `data/` (它的源头在它的旁边), 刷新过 `npm run sync-portable-profile`一个类选择退出 `" abap2ui5lint-disable portable-app` 在它的顶端, 一条道路与规则的 `exclude` 列表中选择一个选项.

## 旧目标上无遗留密码

`ui5` 是您系统运行的释放,一旦被损坏就会报告 在那里是有效的—— 右“ 将这一个休息”, 沉默的"是这个" 遗产。 维持在1.71的应用软件 这样它仍然可以运行在旧系统上 以 SAP 的无后遗症基线衡量,并附带第二个约束:

```jsonc
// abap2ui5lint.jsonc
{
  "ui5": "1.71",
  "deprecatedAt": "1.136"   // or --deprecated-at 1.136
}
```

一切在目标之后和地平线上被破坏的事物——控制, 他们的地产和事件,以及本地的XHTML/SVG标记——然后是一个 [`deprecated-after-target`](https://abap2ui5.github.io/linter/#deprecated-after-target) 提示替换对象的姓名, 并显示目标是否已经存在 (单位:千美元)`sap.m.MessagePage` → `IllustratedMessage`,这需要1.98:保持到 目标移动。 所有其他规则 仍然法官反对 `ui5`。 。 。 .

## 它运行的地方

CLI, 一个 GitHub 动作(`abap2UI5/linter@v0`图书馆——加两个 该图书馆的消费者: [mcp 服务器](https://github.com/abap2UI5/mcp-server) 暴露这些门是MCP 用于 AI 编码代理工具,以及 [VS 代码扩展](https://github.com/abap2UI5/vscode-extension) 显示 输入时作为编辑器诊断结果。 他们都读的一样 `abap2ui5lint.jsonc`所以编辑、探员和CI都同意.

## 用于

**11个公共仓库** 声明 `@abap2ui5/linter` 在一个明显的地方 [GitHub 自己的列表](https://github.com/abap2UI5/linter/network/dependents),每月在此刷新一次 :

-   [abap2UI5-addons/layout-管理](https://github.com/abap2UI5-addons/layout-management)
-   [abap2UI5 -- -- addons/弹出](https://github.com/abap2UI5-addons/popups)
-   [abap2UI5-addons/rfc-连接器](https://github.com/abap2UI5-addons/rfc-connector)
-   [abap2UI5-addons/se16n (中文(简体) )](https://github.com/abap2UI5-addons/se16n)
-   [abap2UI5-addons/所选屏幕](https://github.com/abap2UI5-addons/selection-screen)
-   [abap2UI5-addons/sql-收音机](https://github.com/abap2UI5-addons/sql-console)
-   [abap2UI5 -- -- 添加/表维护](https://github.com/abap2UI5-addons/table-maintenance)
-   [abap2UI5/abap2UI5 互联网档案馆的存檔,存档日期2013-12-2](https://github.com/abap2UI5/abap2UI5)
-   [abap2UI5/docs (中文(简体) )](https://github.com/abap2UI5/docs)
-   [abap2UI5/样本](https://github.com/abap2UI5/samples)
-   [NSSecat/09-26-abap2ui5号卫星](https://github.com/NSSecat/09-26-abap2ui5)

仅a **显示** 条目在此计算——这就是 GitHub 的依赖性 图表可见. 运行插件的仓库 `npx --yes` 或 动作是一个用户,但从未在此列表中出现.

## 研究此存储库

```sh
npm ci
npx playwright install chromium   # the render runtime is an npm workspace here
node cli.mjs test/fixtures --no-render   # the CLI, from the checkout, over its own fixtures
node cli.mjs ../your-app/src             # or over a sibling app (this checkout has no src/)
npm test
```

`AGENTS.md` 携带公约和每个大门检查的东西; `CONTRIBUTING.md` 财务报告和审定财务报表 `RELEASING.md` 其余的工作流程.

四件工艺品由 `npm test`所以一个僵硬的失败了 构建 :

```sh
npm run generate-metadata    # data/properties.json, from the @openui5 sources
npm run generate-schema      # data/abap2ui5lint.schema.json — editor completion
npm run generate-rules-page  # site/index.html — the published rule reference
npm run generate-compat      # data/compat.json — which abap2UI5 releases this linter line understands (the ./compat export)
```

另外两台发电机需要网络,所以套房无法再生它们 所承诺的文件是合同; 计划的工作流程将每个更新 打开 diff 的 PR :

```sh
npm run generate-icons       # data/icons.json — the SAP icon-font snapshot
npm run generate-dependents  # the "Used by" list above, from GitHub's dependents page
```

一个文件是从另一个仓库销售而不是生成的,而且 协议移动时手动刷新( u)`npm test` 针起它的花序 每周上游同步工作流程报告漂移情况 :

```sh
npm run sync-portable-profile   # data/portable-v1.json — abap2UI5/protocol's portable profile (-- --local <checkout> to read a clone)
```

`site/` 规则参考文献 [https://abap2ui5.github.io/linter/ (中文(简体) )](https://abap2ui5.github.io/linter/)),而不是关于此寄存器的文档.

`experimental/github-app/` 是一个尖锐的柱子——一个工作原型,作为iinter的一个 主机为 GitHub App, 保存为恰好执行的文档 。 没错 **没有 已部署、未登记、未在npm上发运且未支持**交付 频道有CLI,库和Action.

## 贷项

重建、模拟模型的衍生、利用和财产大门 建造和试验 [样本控制](https://github.com/abap2UI5/samples-controls) 与官方的UI5示范套装设备——其中 `scripts/view-gates.mjs` 现在消耗这个软件包 取出这些原始的大门. 这个包裹是独立提取的.

## 常见问题

### @abap2ui5/linter 是什么？

在没有SAP系统的情况下验证 abap2UI5 应用类:ABAP及其所构建的视图,一起检查\.

### 如何安装 @abap2ui5/linter？

在项目目录运行 npm install @abap2ui5/linter，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 abap2ui5lint、abap2ui5-lint，可以用 npx abap2ui5lint 直接运行。

### @abap2ui5/linter 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @abap2ui5/linter 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @abap2ui5/linter 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @abap2ui5/linter 可以商用吗？

@abap2ui5/linter 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @abap2ui5/linter 的下载量有多少？

根据 npm 官方下载统计，@abap2ui5/linter 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,653 次，日均约 155 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @abap2ui5/linter 还在维护吗？

最新版本 0\.9\.0 发布于 2026/10/14（24 天前）；至今共发布 20 个版本，其中过去 12 个月发布了 20 个；首次发布于 2026/08/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

