# @etchteam/eslint-config 中文文档

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

版本：3\.4\.38
npm 元数据更新时间：2026-11-13T12:27:02.399Z
中文译文更新时间：2026-11-13T23:14:26.388Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：37.8 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：^20 \|\| ^22 \|\| ^24
- 运行依赖：14 个
- peer 依赖：eslint \>=9\.0\.0，prettier \>=3\.0\.0，typescript \>=4\.8\.4，angular-eslint \>=19\.0\.0，eslint-plugin-lit \>=2\.0\.0，eslint-plugin-react \>=7\.0\.0，eslint-plugin-jsx-a11y \>=6\.0\.0，eslint-plugin-storybook \>=10\.0\.0，@next/eslint-plugin-next \>=15\.0\.0，eslint-plugin-react-hooks \>=5\.0\.0，@darraghor/eslint-plugin-nestjs-typed \>=7\.0\.0
- 首次发布：2022-12-19T12:13:28.078Z
- 最新版本发布：2026-11-13T12:27:01.968Z
- 近 30 天下载量：3655（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：410（近 12 个月 172 个）

## 中文简介

Etch 标准 Eslint 配置

## 安装

```sh
npm install @etchteam/eslint-config
```

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

## README

# @techteam/slint (英语)

我们使用的埃斯林特配置 [爱奇](https://etch.co/)

**++ 版本 1. 0.0+ 需要 ESLint 9** - 看到没 [移徙指南](https://npmcn.com/package/%40etchteam/eslint-config/#readme-migrating-from-eslint-8) 用于升级.

## 安装

```bash
npm i -D eslint@^9.0.0 prettier @etchteam/eslint-config eslint-plugin-react eslint-plugin-jsx-a11y eslint-plugin-storybook
```

## 使用量

创建一个 `eslint.config.js` 在工程根中的文件 :

```javascript
import etchConfig from '@etchteam/eslint-config';

export default etchConfig;
```

## 环境特定配置

对于不需要完全配置的项目,使用特定环境的进口以减少依赖性:

### 下一个.js

```bash
npm i -D eslint prettier @etchteam/eslint-config eslint-plugin-react eslint-plugin-jsx-a11y eslint-plugin-storybook @next/eslint-plugin-next eslint-plugin-react-hooks
```

```javascript
import nextjs from '@etchteam/eslint-config/nextjs';

export default nextjs;
```

### 节点.js / Express

```bash
npm i -D eslint prettier @etchteam/eslint-config
```

```javascript
import nodejs from '@etchteam/eslint-config/nodejs';

export default nodejs;
```

### 角质

```bash
npm i -D eslint prettier @etchteam/eslint-config eslint-plugin-storybook angular-eslint
```

```javascript
import angular from '@etchteam/eslint-config/angular';

export default angular;
```

### 预录

```bash
npm i -D eslint prettier @etchteam/eslint-config eslint-plugin-react eslint-plugin-jsx-a11y eslint-plugin-storybook
```

```javascript
import preact from '@etchteam/eslint-config/preact';

export default preact;
```

### Web 组件( 鼠标)

```bash
npm i -D eslint prettier @etchteam/eslint-config eslint-plugin-storybook eslint-plugin-lit
```

```javascript
import webComponents from '@etchteam/eslint-config/web-components';

export default webComponents;
```

### 网点JS

```bash
npm i -D eslint prettier @etchteam/eslint-config @darraghor/eslint-plugin-nestjs-typed
```

```javascript
import nestjs from '@etchteam/eslint-config/nestjs';

export default nestjs;
```

## 可编译配置

通过组合单个模块构建自定义配置 :

```javascript
import { base, json, yaml, react } from '@etchteam/eslint-config';

export default [
  ...base,
  ...json,
  ...yaml,
  ...react,
  {
    // Your custom overrides
    rules: {
      'react/prefer-read-only-props': 'warn',
    },
  },
];
```

### 可用模块

| 模块 | 说明 |
| --- | --- |
| `base` | 核心规则:JS、TypeScript、安全、进口、更美 |
| `json` | JSON 文件林入 |
| `yaml` | YAML 文件林入 |
| `storybook` | 故事书最佳做法 |
| `react` | React + JSX 可访问性 |

### 环境配置(自定义)

| 配置 | 包括 |
| --- | --- |
| `nextjs` | 基础 + json + yaml + 故事本 + 反应 + Next.js 规则 |
| `nodejs` | 基数 + json + yaml + 节点.js 全球 |
| `angular` | 基础 + json + yaml + 故事本 + 角规则 |
| `preact` | 基础 + json + yaml + 故事本 + 反应(预设) |
| `web-components` | 基础 + json + yaml + 故事本 + 立特规则 |
| `nestjs` | 基础 + json + yaml + NestJS 规则 + 顶级全球赛 |

### 所需同伴依赖

这个 **基础**, (中文(简体) ), **乔森**,以及 **雅姆尔** 模块包含其所有插件作为软件包依赖性——不需要额外安装.

其他配置需要作为对等依赖安装额外的插件 :

| 配置 | 要安装的额外插件 |
| --- | --- |
| 默认( E)`@etchteam/eslint-config`(中文(简体) ) | `eslint-plugin-react` `eslint-plugin-jsx-a11y` `eslint-plugin-storybook` |
| `react` | `eslint-plugin-react` `eslint-plugin-jsx-a11y` |
| `storybook` | `eslint-plugin-storybook` |
| `nextjs` | `eslint-plugin-react` `eslint-plugin-jsx-a11y` `eslint-plugin-storybook` `@next/eslint-plugin-next` `eslint-plugin-react-hooks` |
| `nodejs` | 无 |
| `preact` | `eslint-plugin-react` `eslint-plugin-jsx-a11y` `eslint-plugin-storybook` |
| `angular` | `eslint-plugin-storybook` `angular-eslint` |
| `web-components` | `eslint-plugin-storybook` `eslint-plugin-lit` |
| `nestjs` | `@darraghor/eslint-plugin-nestjs-typed` |

## 有了舞台

### 新项目

运行如下 :

```bash
npm i -D husky lint-staged

echo "module.exports = { '*.{ts,tsx,js,jsx,yml,yaml,json}': 'eslint --fix' };" > lint-staged.config.cjs

npx husky init

echo "npx --no-install -- lint-staged" > .husky/pre-commit

```

### 实施Husky和lint项目

在您的相位配置中添加以下内容:

`'*.{ts,tsx,js,jsx,yml,yaml,json}': 'eslint --fix'`

## 使用 VSCode

### 没有 VSCode 配置的新工程

运行如下 :

```bash
mkdir .vscode

echo "{ \"editor.formatOnSave\": false, \"editor.codeActionsOnSave\": { \"source.fixAll.eslint\": \"explicit\" } }" > .vscode/settings.json

# The VSCode prettier extension doesn't read the eslint config, so specific
# prettier overrides need to go in a prettier config for format on save
echo "export default { singleQuote: true };" > prettier.config.js

```

### 使用 VSCode 配置的探索项目

添加以下内容到 `.vscode/settings.json`数字 :

```json
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": "explicit"
}
```

运行如下 :

```bash
# The VSCode prettier extension doesn't read the eslint config, so specific
# prettier overrides need to go in a prettier config for format on save
echo "export default { singleQuote: true };" > prettier.config.js
```

## 从ESLint 8 移动

如果你正在升级 从ESLint 8,遵循这些步骤:

### 1\. 更新的附属关系

```bash
npm install eslint@^9.0.0 @etchteam/eslint-config@^1.0.0
```

### 2\. 替换配置

移除旧的 `.eslintrc.*` 文件并创建新文件 `eslint.config.js`数字 :

```javascript
import etchConfig from '@etchteam/eslint-config';

export default etchConfig;
```

### 3\. 更新脚本(如有需要)

ESLint 9默认使用平面配置,因此您现有的npm脚本应该不作修改地工作.

### 变了什么

-   **平面配置格式** - 更明确、更能发挥作用
-   **ESLint 9 兼容性** - 最新特点和修正
-   **更新的插件** - 更新到最新版本的所有插件
-   **模块配置** - 仅导入您需要的环境

## 常见问题

### @etchteam/eslint-config 是什么？

Etch 标准 Eslint 配置

### 如何安装 @etchteam/eslint-config？

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

### @etchteam/eslint-config 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/etchteam\_\_eslint-config 是否存在。

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

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

### @etchteam/eslint-config 需要什么版本的 Node\.js？

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

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

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

### @etchteam/eslint-config 的下载量有多少？

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

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

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

