ESLint 配置
一个全面和灵活的ESLint配置,支持广泛的 框架和环境。 方便地整合干净、一致的代码标准 通过为特定工具和图书馆提供环境,实现所有项目.
此配置涵盖一个简单直接导入的多个设置, 帮助 保持不同项目类型和框架的一致性.
使用量
运行 ESLint 需要节点.js ^22.22.3 || ^24.16.0 || >=26.3.0,匹配
包含插件的要求。 你插入的代码可以瞄准更老的
运行时间.
- 安装软件包 :
pnpm add --save-dev eslint @azat-io/eslint-config
- 创建 ESLint 配置文件
eslint.config.js数字 :
import eslintConfig from '@azat-io/eslint-config'
export default eslintConfig({
root: import.meta.dirname,
perfectionist: true,
typescript: true,
react: true,
node: true,
})
- 添加脚本
package.json数字 :
{
"scripts": {
"test:js": "eslint \"**/*.{js,ts,jsx,tsx,json}\""
}
}
配置
要根据您的项目需要配置 ESLint 规则, 请导入配置 ,并传递每个框架或工具带有选项的对象。 框架和工具 旗帜默认被禁用 。 启用运行时间兼容性检查 自动.
import eslintConfig from '@azat-io/eslint-config'
export default eslintConfig({
perfectionist: true,
typescript: true,
svelte: true,
vitest: true,
astro: true,
react: true,
qwik: true,
node: true,
vue: true,
})
完美主义者
启用用于排序和组织代码结构的规则,以提高可读性 和一致性.
类型标记
添加 TypeScript 特有衬线规则,以确保类型安全并维护 TypeScript最佳做法.
丝绒
启用对 Svelte 的支持, 包括对 Svelte 组件的 Linting 规则和 文档.
测试
添加对 Vitest 的支持, 调整 linting 以测试文件和做法 在Vitest项目内.
天体
Astro 项目配置 ESLint, 对 Astro 文件进行调整 结构与公约.
反应
包括针对JSX语法、反应钩和最佳 反应环境中的做法.
齐克
添加对 Qwik 的支持, 调整 Qwik 特定语法的林入和 公约.
节点
调整为节点环境,处理节点特定全球, 进口和常见做法.
声音
添加 Vue 特定的林入规则,支持 Vue 的语法和最佳做法 Vue 组件.
运行时间目标
配置读取最近的 package.json 浏览器列表配置到
禁用将引入不支持的 API 的规则 。 运行时间覆盖适用于
由启用配置支持的源文件, 使 JSON 文件不受影响 .
import eslintConfig from '@azat-io/eslint-config'
export default eslintConfig({
root: import.meta.dirname,
targets: {
browsers: 'baseline widely available',
node: '>=22',
},
toolingNode: '>=24',
typescript: true,
})
root 是用于运行时目标发现的目录或文件 URL。 这个
默认为 process.cwd(); 将其设置在单体或运行时
来自另一个目录的ESLint.
targets 默认为 'auto'。 。 node 财务报告和审定财务报表 browsers 密钥覆盖
独立自动发现; 仍然检测出省略的密钥,以及 false
排除运行时间。 节点J目标来自 engines.node,则
浏览器list Node.js查询,后为Node.js 22回落. 赤裸裸的显着
类似版本 '22.12' 表示该版本或更新. 这个 node: true 旗帜
启用Node.js lint 规则,并与 targets.node。 。 。 .
toolingNode 为配置文件和文件设置不同的Node.js目标
scripts/, (中文(简体) ), bin/ 财务报告和审定财务报表 tools/在配置中只启用了扩展名
包含。 否则工具化会使用被检测到的项目Node.js目标,
包括只使用浏览器的项目.
其他运行时间选项 :
| 选项 | 默认 | 目的 |
|---|---|---|
browserslistEnv | 'production' | 选择浏览器列表环境 . |
pinnedDate | 支持数据日期 | Pin 相对基线查询,包括共享配置 . |
fallback | { node: '22.0.0' } | 选择后退 Node.js 目标,或禁用 false。 。 。 . |
missingBrowsers | 'ignore' | 忽略缺失的浏览器目标, 使用 'off',或查询. |
unknownBrowsers | 'off' | 禁用依赖规则或 'ignore' 未知浏览器. |
ignoreBrowsers | ['op_mini'] | 替换被忽略的浏览器列表代理列表 . |
quiet | false | 在配置设置中保留警告而不打印它们 . |
已解析的目标源、警告和禁用规则,可在
settings['azat-io/runtime'] 在ESLint语中 --print-config 输出。 自定义
extends 配置在运行时间覆盖后运行, 所以需要明确的规则选择
优先级.
扩展
可以自入自性相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 示例
import eslintConfig from '@azat-io/eslint-config'
export default eslintConfig({
extends: [
{
rules: {
'no-undef': 'off',
},
},
],
})
插件
此配置使用以下插件 :
- @slint/js (英语)
- @vitest/eslint-plugin (英语)
- 埃斯林特- 插头- astro
- 埃斯林特-插头-德-摩根
- eslint- 插件依赖
- 埃斯林特-插孔-进口-升
- 埃斯林特-插孔-jsdoc
- 埃斯林特-插头-jsx-a11y-x
- 埃斯林特-插头-n
- 埃斯林特-插孔-包装-json
- 埃斯林特-插剂-完美药剂师
- 爱斯林特- 插头- 偏好
- 埃斯林特- 插座- 保证
- 埃斯林特- plugin- qwik
- eslint-plugin- react-down (英语)
- eslint-plugin- react-hooks (英语)
- 埃斯林特-插头-反应-jsx
- eslint-plugin-反应-命名-公约
- eslint-plugin- react-perf
- eslint-plugin- react-web-api (英语)
- eslint-plugin-反应-x
- 斯林特- plugin- regexp
- 斯林特-plugin- slop (英语)
- 埃斯林特- 插孔- sonarjs
- 斯林特- 插头- 丝绒
- 斯林特-插孔-独角兽
- 斯林特- 插图- vue
- 类型标记- slint
另见
- @azat-io/ai-config
- @azat-io/ prettier- config
- @ azat-io/ stylelint- config
- @ azat-io/ typescript- config
许可证
麻省理工学院 (原始内容存档于2018-09-21). Azat S.