# @aval-adr/eslint-config 中文文档

规范地址：https://npmcn.com/package/%40aval-adr/eslint-config/

版本：0\.13\.0
npm 元数据更新时间：2026-10-31T14:27:03.333Z
中文译文更新时间：2026-10-31T14:58:01.269Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40aval-adr/eslint-config
原文对照：https://npmcn.com/package/%40aval-adr/eslint-config/?lang=original
项目主页：https://github.com/fredericrous/adr-lint#readme
源码仓库：https://github.com/fredericrous/adr-lint

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

- 包体积（解压后）：8.7 kB，4 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：eslint ^9\.0\.0 \|\| ^10\.0\.0，typescript-eslint ^8\.0\.0
- 首次发布：2026-10-25T21:50:32.625Z
- 最新版本发布：2026-10-31T14:27:02.956Z
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

ESLint平面配置为一个筛选器完全匹配的确定的代码规则（ADR-0044）

## 安装

```sh
npm install @aval-adr/eslint-config
```

也可以使用：`pnpm add @aval-adr/eslint-config`、`yarn add @aval-adr/eslint-config`、`bun add @aval-adr/eslint-config`

## README

# @aval-adr / eslint-config

ESLint平面配置用于筛选器匹配的确定代码规则（ADR-0044） 完全正确。版本控制 `adr-lint` 板条箱。

```js
import { adrLint, adrLintTyped } from "@aval-adr/eslint-config";

export default [
  ...adrLint({
    restrictedImports: [
      { files: ["src/domain/**"], paths: ["fs"], patterns: [{ group: ["@mui/*"] }] },
    ],
  }),
];
```

-   `adrLint({ restrictedImports = [] })` 返回配置数组。每个条目是 `{ files?, paths?, patterns? }`;相同的条目 `files` (缺席=全部 文件)被连接到一个 `@typescript-eslint/no-restricted-imports` 选项，因为平面配置只保留规则的最后一个选项。没有条目, 没有这样的东西。
-   `adrLintTyped(options)` 是 `adrLint(options)` 加上类型化规则 `switch-exhaustiveness-check` 和 `parserOptions.projectService: true`;它 需要一个 `tsconfig.json`. `adrLint` 单独不设置类型化规则和parserOptions。

## 规则和各自执行的决定规则

| 规则 | 决定规则 |
| --- | --- |
| `linterOptions.reportUnusedDisableDirectives: "error"` | `general.no-disabled-safety` |
| `@typescript-eslint/ban-ts-comment` （`ts-expect-error: allow-with-description`， `ts-ignore`， `ts-nocheck` 禁止) | `general.no-disabled-safety` |
| `@eslint-community/eslint-comments/no-unlimited-disable`， `require-description`， `disable-enable-pair` | `general.no-disabled-safety` |
| `adr-lint/no-swallowed-catch` | `errors.never-swallowed` |
| `@typescript-eslint/no-restricted-imports` (从 `restrictedImports`） | `architecture.dependency-rule`， `domain.independent-of-infrastructure` |
| `@typescript-eslint/switch-exhaustiveness-check` (输入) | `types.exhaustive-matching` |

## 缩小了，为什么？

-   **errors.never-swallowed:** ESLint的 `no-empty` 标记每个空块，和 也 `catch {} // why`，这是规则主体允许的。 `adr-lint/no-swallowed-catch` 只报告一个 `catch` 在子句中没有任何语句和注释 （`catch (e) /* why */ {}` 包括)或在其右大括号行上。
-   **general.no-disabled-safety:** `require-description` 只问一个理由 压制指令； `eslint-enable`， `global(s)`， `exported` 和 `eslint-env` 什么都不压抑，什么都不需要。

`switch-exhaustiveness-check` 保留其股票期权，这是规则主体： 一宗失踪案件即使在沉默的背后也有人报案 `default`，和一个完整的开关 谁的 `default` 分配给 `never` 传球。

## 递延

-   **components.acyclic-dependencies:** `import/no-cycle` 是延迟的。它需要 `eslint-plugin-import-x` 每个消费者都有一个TS解析器，以及它的lint 时间是无法衡量的。

## 依赖关系

-   `@eslint-community/eslint-plugin-eslint-comments`的家 disable-directive规则;拥有它们意味着解析指令注释 我们自己。它没有构建脚本，也没有运行时依赖项 `escape-string-regexp` 和 `ignore`;如果被抛弃，三条规则就会进入 `adr-lint/` 在这里。
-   `eslint` 和 `typescript-eslint` 是消费者已经拥有的对等依赖项。

## 常见问题

### @aval-adr/eslint-config 是什么？

ESLint平面配置为一个筛选器完全匹配的确定的代码规则（ADR-0044）

### 如何安装 @aval-adr/eslint-config？

在项目目录运行 npm install @aval-adr/eslint-config，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：eslint（^9\.0\.0 \|\| ^10\.0\.0）、typescript-eslint（^8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aval-adr/eslint-config 支持 TypeScript 吗？

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

### @aval-adr/eslint-config 支持 ESM 还是 CommonJS？

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

### @aval-adr/eslint-config 可以商用吗？

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

### @aval-adr/eslint-config 还在维护吗？

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

