跳到内容

eslint/eslint

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

npm版本 下载 生成状态 FOSSA状态
开放式集体支持者 公开集体赞助商 在推特上关注我们

ESLint公司

网站|配置ESLint|规则|为ESLint做出贡献|报告Bug|行为准则|推特|不一致|乳臭虫

ESLint是一个用于识别和报告ECMAScript/JavaScript代码中发现的模式的工具。在许多方面,它与JSLint和JSHint类似,但有几个例外:

  • ESLint使用埃斯普雷用于JavaScript解析。
  • ESLint使用AST评估代码中的模式。
  • ESLint是完全可插入的,每个规则都是一个插件,您可以在运行时添加更多插件。

目录

  1. 安装和使用
  2. 配置
  3. 版本支持
  4. 行为准则
  5. 提交问题
  6. 常见问题
  7. 发布
  8. 安全策略
  9. 语义版本策略
  10. 样式规则更新
  11. 许可证
  12. 团队
  13. 赞助商
  14. 技术赞助商

安装和使用

前提条件:节点.js(^18.18.0,^20.9.0,或>=21.1.0)内置SSL支持。(如果您使用的是官方Node.js发行版,则始终内置SSL。)

您可以使用以下命令安装和配置ESLint:

npm初始化@eslint/config@最新

之后,您可以在任何文件或目录上运行ESLint,如下所示:

npx eslint您的文件.js

配置

您可以在中配置规则eslint.config.js(eslint.config.js)文件,如本例所示:

出口 违约 [
    {
        文件夹:[“**/*.js”, “**/*.cjs”, “**/*.mjs”],
        规则:{
            “prefer-const”:“警告”,
            “非恒定二进制表达式”:“错误”
        }
    }
];

名字“prefer-const”“非恒定二进制表达式”是的名字吗规则在ESLint中。第一个值是规则的错误级别,可以是以下值之一:

  • “关闭”0-取消规则
  • “警告”1-打开规则作为警告(不影响退出代码)
  • “错误”2-将规则作为错误打开(退出代码为1)

这三个错误级别允许您对ESLint如何应用规则进行细粒度控制(有关更多配置选项和详细信息,请参阅配置文档).

版本支持

ESLint团队为当前版本提供持续支持,并为前一版本提供六个月的有限支持。有限的支持仅包括关键错误修复、安全问题和兼容性问题。

ESLint通过我们的合作伙伴为当前和以前的版本提供商业支持,潮汐升降英雄开发人员.

请参阅版本支持了解更多详细信息。

行为准则

ESLint坚持OpenJS基金会行为准则.

提交问题

在提交问题之前,请务必阅读您报告内容的指南:

常见问题

ESLint支持JSX吗?

是的,ESLint本机支持解析JSX语法(这必须在中启用配置). 请注意,支持JSX语法不是与支撑反应相同。React将ESLint无法识别的特定语义应用于JSX语法。我们建议使用eslint-plugin反应如果您正在使用React并想要React语义。

Prettier是否取代ESLint?

不,ESLint和Prettier有不同的工作:ESLint是一个linter(查找有问题的模式),而Prettie是一个代码格式化程序。使用这两种工具很常见,请参阅Prettier的文档学习如何配置它们,使其相互协作。

ESLint支持哪些ECMAScript版本?

ESLint完全支持ECMAScript 3、5,从2015年到最新的第4阶段规范(默认),每年都提供支持。您可以通过设置所需的ECMAScript语法和其他设置(如全局变量)配置.

实验特征呢?

ESLint的解析器仅正式支持最新的最终ECMAScript标准。我们将更改核心规则,以避免第3阶段ECMAScript语法建议出现崩溃(只要它们是使用正确的实验ESTree语法实现的)。我们可以根据具体情况更改核心规则,以更好地使用语言扩展(如JSX、Flow和TypeScript)。

在其他情况下(包括如果规则由于新语法需要在更多或更少的情况下发出警告,而不仅仅是不崩溃),我们建议您使用其他解析器和/或规则插件。如果你正在使用Babel,你可以使用@babel/eslint-parser公司@babel/eslint-plugin合金使用Babel中的任何选项。

一旦语言特性被采用到ECMAScript标准中(根据TC39工艺),我们将接受与新功能相关的问题和请求贡献指南。在此之前,请为您的实验功能使用适当的解析器和插件。

ESLint支持哪些Node.js版本?

ESLint会随ESLint的每个主要版本更新受支持的Node.js版本。当时,ESLint支持的Node.js版本更新为:

  1. Node.js的最新维护版本
  2. Node.js LTS发行版的最低次版本,包括ESLint团队想要使用的功能。
  3. Node.js当前版本

ESLint还将与Node.js当前版本发布后发布的Node.js版本一起使用。

请参阅快速入门指南针对给定ESLint版本的官方支持的Node.js版本。

在哪里寻求帮助?

打开讨论或者停下来不一致服务器.

为什么ESLint不锁定依赖项版本?

锁定文件,如包装-锁.json有助于部署应用程序。它们确保环境之间和部署之间的依赖关系一致。

类似的程序包埃斯林发布到npm注册表的不包括锁文件。npm安装eslint因为用户将尊重ESLint中的版本约束package.json包.ESLint及其依赖项将包含在用户的锁定文件中(如果存在),但不会使用ESLint自己的锁定文件。

我们有意不锁定依赖项版本,以便在开发和CI中拥有用户在项目中安装ESLint时获得的最新兼容依赖项版本。

Twilio博客有一个更深的潜水了解更多信息。

发布

我们计划每两周在周五或周六发布一次。你可以关注发布问题获取有关任何特定版本计划的更新。

安全策略

ESLint非常重视安全性。我们努力确保ESLint对每个人都是安全的,并且安全问题得到快速、负责的解决。阅读全文安全策略.

语义版本策略

ESLint如下语义版本控制然而,由于ESLint作为一种代码质量工具的性质,在发生次要或主要版本冲突时并不总是很清楚。为了帮助大家澄清这一点,我们为ESLint定义了以下语义版本控制策略:

  • 补丁版本(旨在不破坏您的lint构建)
    • 规则中的错误修复导致ESLint报告更少的linting错误。
    • CLI或内核(包括格式化程序)的错误修复。
    • 文档的改进。
    • 非用户化的更改,例如重构代码、添加、删除或修改测试,以及增加测试覆盖率。
    • 发布失败后重新发布(即发布对任何人都无效的发布)。
  • 次要版本(可能会破坏lint构建)
    • 一个导致ESLint报告更多linting错误的规则中的错误修复。
    • 将创建新规则。
    • 现有规则的一个新选项,默认情况下不会导致ESLint报告更多的linting错误。
    • 对现有规则进行了新的添加,以支持新添加的语言功能(在过去12个月内),这将导致ESLint默认报告更多的linting错误。
    • 现有规则已弃用。
    • 创建了新的CLI功能。
    • 向公共API添加了新功能(新类、新方法、现有方法的新参数等)。
    • 将创建一个新的格式化程序。
    • eslint:推荐更新后,将导致更少的linting错误(例如,规则删除)。
  • 主要版本(可能会破坏您的lint构建)
    • eslint:推荐更新,并可能导致新的linting错误(例如,规则添加、大多数规则选项更新)。
    • 现有规则的一个新选项,默认情况下会导致ESLint报告更多的linting错误。
    • 已删除现有的格式化程序。
    • 以不兼容的方式删除或更改了部分公共API。公共API包括:
      • 规则架构
      • 配置架构
      • 命令行选项
      • Node.js API
      • 规则、格式化程序、解析器、插件API

根据我们的政策,任何微小的更新都可能报告比上一版本更多的linting错误(例如:错误修复)。因此,我们建议使用波浪号(~)英寸package.json包例如“eslint”:“~3.1.0”以保证生成的结果。

样式规则更新

风格规则根据我们的政策我们如何评估新规则和规则更改。这意味着:

  • 错误修复:我们仍将修复风格规则中的错误。
  • 新的ECMAScript功能:我们还将确保样式规则与新的ECMAScript功能兼容。
  • 新选项:我们会的向样式规则添加任何新选项,除非选项是修复错误或支持新添加的ECMAScript功能的唯一方法。

许可证

FOSSA状态

团队

这些人保持项目的进展,是需要帮助的资源。

技术指导委员会(TSC)

负责管理发布、审查功能请求并定期会面以确保ESLint得到正确维护的人员。

尼古拉斯·扎卡斯的阿凡达
尼古拉斯·扎卡斯
弗朗西斯科·特洛塔的《阿凡达》
弗朗西斯科·特罗塔
米洛斯·杰尔马诺维奇的阿凡达
米洛斯·杰尔马诺维奇

评审员

审查和实施新功能的人员。

唯然's阿凡达
唯然
尼汀·库马尔的阿凡达
尼丁·库马尔

委员会

审查和修复错误并帮助分类问题的人员。

乔什·戈德伯格✨'s阿凡达
乔什·戈德伯格
Tanuj Kanti的阿凡达
塔努吉·坎蒂

网站团队

专门关注eslint.org的团队成员

Amaresh S M的阿凡达
Amaresh S M公司
斯特雷克的阿凡达
斯特雷克
珀西·马的阿凡达
珀西·马

赞助商

以下公司、组织和个人支持ESLint的持续维护和开发。成为赞助商在我们的自述文件和网站上获得您的徽标。

白金赞助商

自动化 Airbnb公司

金牌赞助商

中继.io

白银赞助商

JetBrains公司 起飞 美国运通 Workleap公司

铜牌赞助商

Anagram解算器 图标8 不一致 Nx公司 英雄编码器 Nextbase初学者工具包

技术赞助商

网络化 阿尔戈利亚 1密码