@aaarongoldenthal/eslint-config-标准
内容提要
自定义所有项目的 ESLint 配置 。 包括平面配置格式 以下配置与 ESLint v9+ 兼容 :
| 插件名称 | 配置名称 | 规则前缀 |
|---|---|---|
eslint | base-config | 无, core |
@eslint-community/eslint-plugin-eslint-comments | eslint-comments-config | comments |
eslint-plugin-jest | jest-config | jest |
eslint-plugin-jsdoc | jsdoc-config | jsdoc |
eslint-plugin-n | node-config | node |
eslint-plugin-playwright | playwright-config | playwright |
eslint-plugin-unicorn | unicorn-config, (中文(简体) ), esm-config | unicorn |
eslint-plugin-vitest | vitest-config | vitest |
typescript-eslint | typescript-eslint-config | @typescript-eslint |
作为平面配置,软件包定义所有所需的插件/配置为
dependencies由于平面配置允许规则前缀的灵活性(即
即,它们不必与插件名称相匹配,规则前缀被修改
在某些情况下,更直观或可读。 配置可能为单一
配置或组合的数组,酌情使用
eSLint 工具函数
defineConfig(), (中文(简体) ),
两者兼具.
这个 core 前缀只有一个规则, core/complexity,这有一个更高的门槛.
这为低阈值的个案提供了二级检查 complexity
规则被关闭,否则将产生无限的复杂性。 自重新使用核心以来
规则是一种实验能力,必须使用环境变量
ENABLE_ESLINT_CORE_RULE_DUPLICATES=true。 。 。 .
大多数规则配置适用于所有 JavaScript 和 TypeScript 文件
(比对) '**/*.{js,mjs,cjs,ts,mts,cts}') (中文(简体) ). 以下配置为
例外情况,适用于以下文件:
base-config套装sourceType改为commonjs页:1*.{js,cjs,ts,cts}文档和module页:1*.{mjs,mts}文档.base-config包含一个可禁用一些测试文件规则的配置 匹配以下任何测试模式(例如)max-lines, (中文(简体) ),max-lines-per-function) (中文(简体) ).jest-config对匹配的文件应用规则'**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts}'或者说'**/?(*.)+(spec|test).{js,mjs,cjs,ts,mts,cts}'。 。 。 .vitest-config对匹配的无害环境管理文件适用规则'**/__tests__/**/*.{js,mjs,ts,mts}'或者说'**/?(*.)+(spec|test).{js,mjs,ts,mts}'。 。 。 .playwright-config: 对匹配的文件应用规则'**/*.pwtest.{js,mjs,cjs,ts,mts,cts}',从而区别于 Jest/Vites测试文件.unicorn-config包含一个可禁用一些测试文件规则的配置 (匹配以下任何一种测试模式),并采用某些针对无害环境管理的测试模式 仅适用于下列情形的规则:*.{mjs,mts}文档.typescript-eslint-config应用typescript-eslint规则到 JavaScript 和所有类型脚本文件。 其中一些规则扩展了ESLint的核心规则, 因此这些核心ESLint规则在这个配置中被关闭以避免冲突. 它还只对TypeScript文件适用TypeScript特定规则,以及 配置@typescript-eslint/parser设置以使用最接近tsconfig.json文档。 对于具体针对无害环境管理/CJS的规则,它假定:*.{js,ts}文件为无害环境管理,不同于base-config。确保 此配置应在base-config财务报告和审定财务报表esm-config。 。 。 .
随着ESLint v9,格式化规则大多被贬值并删除
base-config不过 eslint-config-prettier 软件包已包含并可以包含
如果 prettier 也正在使用它来确保优先
用于格式化,尽管最后应当包括.
还有一个 esm-config 包括使用ES模块的项目
普通JS模块. 此配置设置 sourceType 改为 module 页:1 *.{js,ts}
文档和包含 unicorn-config 专门针对无害环境管理的规则.
使用量
这个模块现在已是纯粹的无害环境管理,因此必须从无害环境管理文件中调用
eslint.config.js (如果项目是无害环境管理)或 eslint.config.mjs (如果
项目为CJS).
有三个版本 recommended 配置
涵盖通用JS、无害环境管理和TypeScript,以及单个配置可以
手动配置.
recommended 配置
这个 recommended 配置用于所有插件配置的普通JS
启用但 vitest-config (确实包括: jest-config和
typescript-eslint-config它的确对下列各方适用了针对无害环境管理的具体规则:
*.{mjs,mts} 文档。 规则适用于所有 JavaScript 和 TypeScript
文件,但不需要 TypeScript(没有有类型的规则)。 要配置
eslint.config.mjs 使用此配置 :
import { defineConfig, globalIgnores } from 'eslint/config';
import recommendedConfig from '@aarongoldenthal/eslint-config-standard/recommended';
export default defineConfig([
recommendedConfig,
globalIgnores(['node_modules/**', 'coverage/**'])
]);
注意可选 globalIgnores 最后一个可以添加的配置以忽略某些
目录.
recommended-esm 配置
这个 recommended-esm 配置与 recommended 配置,
但是为了无害环境管理。 它包括 vitest-config 代替
jest-config,还有 esm-config (适用于 *.{js,ts} 文档 ,
但不包括 typescript-eslint-config这些规则也适用
切入所有 JavaScript 和 TypeScript 文件, 但不需要 TypeScript (没有规则)
包括类型). 它可以配置为:
import { defineConfig, globalIgnores } from 'eslint/config';
import recommendedConfig from '@aarongoldenthal/eslint-config-standard/recommended-esm';
export default defineConfig([
recommendedConfig,
globalIgnores(['node_modules/**', 'coverage/**'])
]);
recommended-ts 配置
这个 recommended-ts 配置与 recommended-esm 配置,
但也包括 typescript-eslint-config,因此要求
TypeScript( 可选的对等依赖) 和 a tsconfig.json 文档。 它会
配置为:
import { defineConfig, globalIgnores } from 'eslint/config';
import recommendedConfig from '@aarongoldenthal/eslint-config-standard/recommended-ts';
export default defineConfig([
recommendedConfig,
globalIgnores(['node_modules/**', 'coverage/**'])
]);
使用单个配置
要配置 eslint.config.js 带有单个插件,请参见 recommended*
配置为例.
注释:
- 如果使用,则
base-config应在其他配置之后列入, 除外esm-config, (中文(简体) ),typescript-eslint-config,以及prettier所以这些 设置优先. - 这个
jest-config财务报告和审定财务报表vitest-config同样的文件适用性,所以 只能使用一个. - 如果使用,则
esm-config在所有功能后应配置 JavaScript 规则,以确保被推翻的设置优先. - 如果使用,则
typescript-eslint-config毕竟应该配置 其他确保被推翻的设置的规则优先. - 如果使用,则
prettier配置应最后列入,以便在 取消所有其他配置的适用规则.