当前位置: 首页 > news >正文

ESLint 除了在packages.json还能在哪里配置?

ESLint 的配置文件可以存在于多个位置,并且支持多种文件格式。以下是常见的 ESLint 配置存放位置和文件类型:


1. 专用配置文件(优先级更高)

ESLint 会自动检测项目中的配置文件,按以下优先级从高到低加载(高优先级覆盖低优先级):

配置文件名称文件格式说明
.eslintrc.jsJavaScript动态配置,支持条件逻辑(最灵活,推荐)。
.eslintrc.cjsCommonJS适用于 CommonJS 环境(Node.js 项目)。
.eslintrc.yaml / .eslintrc.ymlYAML结构化配置,适合简洁配置。
.eslintrc.jsonJSON静态配置,兼容性好(但无法写注释)。
.eslintrc(不推荐)不确定旧版格式,易混淆,不建议使用。
示例:.eslintrc.js
module.exports = {root: true,env: { node: true },extends: ["plugin:vue/recommended", "eslint:recommended"],rules: {"no-console": "warn"}
};

2. package.json 中的 eslintConfig 字段

  • 如果项目中没有专用的 ESLint 配置文件,ESLint 会检查 package.json 中的 eslintConfig 字段。
  • 适合小型项目或希望减少配置文件数量的场景。
示例:package.json
{"name": "my-project","eslintConfig": {"extends": ["plugin:vue/recommended"]}
}

3. 全局配置文件(用户级)

  • 路径:~/.eslintrc.*(用户主目录下)。
  • 用途:配置用户所有项目的默认 ESLint 规则(慎用,易造成全局污染)。
  • 优先级最低,会被项目级配置覆盖。

4. 通过命令行参数指定

  • 通过 --config 参数手动指定配置文件路径:
    eslint --config path/to/your/config.js src/
    
  • 适用场景:临时使用特定配置(如测试不同规则)。

5. 配置继承(extends

  • 可以通过 extends 字段继承其他配置(如共享配置包或预设):
    module.exports = {extends: ["eslint:recommended",          // ESLint 官方推荐规则"plugin:vue/vue3-recommended", // Vue 3 规则"airbnb-base"                  // 第三方规则(如 Airbnb 风格)]
    };
    
  • 共享配置包:可发布为 npm 包(如 eslint-config-airbnb)。

6. 忽略文件(.eslintignore

  • 类似 .gitignore,用于排除不需要检查的文件/目录。
  • 示例
    /dist/
    /node_modules/
    *.test.js
    

优先级总结

  1. 命令行 --config 指定的文件
  2. 项目级配置文件(如 .eslintrc.js
  3. package.json 中的 eslintConfig
  4. 全局配置文件(~/.eslintrc.*

如何选择?

  • 推荐:使用 .eslintrc.js(灵活 + 可注释) + .eslintignore
  • 简单项目:直接写在 package.jsoneslintConfig 中。
  • 团队协作:通过 extends 继承共享配置(如 eslint-config-standard)。

注意

  • 避免同时存在多个配置文件(如 .eslintrc.json.eslintrc.js),否则可能导致规则冲突。
  • Vue 项目需确保配置了 vue-eslint-parser(参考文档)。
http://www.lryc.cn/news/589466.html

相关文章:

  • 实测两款效率工具:驾考刷题和证件照处理的免费方案
  • CF37E Trial for Chief 题解
  • 【LeetCode 热题 100】226. 翻转二叉树——DFS
  • Python 数据建模与分析项目实战预备 Day 6 - 多模型对比与交叉验证验证策略
  • Zookeeper入门安装与使用详解
  • CAS单点登录架构详解
  • 关于实习的经验贴
  • 鸿蒙和Android知识点
  • 软件测试面试经历分享?
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 文心一言4.5企业级部署实战:多模态能力与Docker容器化测评
  • x86版的ubuntu上使用qemu运行arm版ubuntu
  • PHP连接MySQL数据库的多种方法及专业级错误处理指南
  • Postgresql源码(147)Nestloop流程与Instrumentation简单分析
  • python实现自动化sql布尔盲注(二分查找)
  • 03 51单片机之独立按键控制LED状态
  • 论文 视黄素与细胞修复
  • 小型客厅如何装修设计?
  • 微信小程序开发-桌面端和移动端UI表现不一致问题记录
  • [ROS 系列学习教程] ROS动作通讯(Action):通信模型、Hello World与拓展
  • Linux操作系统之信号:保存与处理信号
  • Quick API:赋能能源行业,化解数据痛点
  • MongoDB 学习笔记
  • 三年高端随身WIFI销量冠军如何用“技术普惠”击穿行业暴利,用户直呼真香;随身WIFI哪个牌子性价比最高?
  • netstat -tlnp | grep 5000
  • 基于Python的图像文字识别系统
  • Linux探秘坊-------14.信号
  • ObservableValidator自定义错误样式
  • 从知识变现到创始人IP:知识付费的进阶之路
  • zip 加密压缩文件的原理是什么?