ESLint v7.0.0 将会有哪些新功能?
0 条评论原文地址:https://mp.weixin.qq.com/s/YsR9NGIUyBANFUxceJdfqw
最近,ESLint
开始发布 v7.0.0
的 alpha
版本,据官方描述,v7.0.0
是 ESLint
的一个重要的里程碑版本,你可以在 Github
的项目看板中看到 v7.0.0
将计划支持的所有内容。
下面我就带大家来看看将要有哪些更改,以便你可以更好地为更改做准备,并了解为什么需要进行这些更改。
放弃对 Node.js v8.x 的支持
Node.js v8.x
于2019年12月正式停止维护,因此 v7.0.0
删除了对该版本 Node.js
的支持。
ESLint 类替代 CLIEngine 类
从 ESLint
的早期开始,我们提供了一个 CLIEngine
类,允许开发人员创建 ESLint
的一些扩展,例如编辑器插件、构建工具插件等等。CLIEngine
类为 ESLint
提供支持,多年来一直是该项目的重要组成部分。
不幸的是, CLIEngine
已经成为许多新特性的主要阻碍。最重要的是,因为CLIEngine
类是同步工作的,所以在 ESLint
的核心中不可能执行任何类型的异步操作。这一限制意味着诸如文件的并行连接和加载 ECMAScript
模块(ESM)文件等功能无法实现。
在我们决定用新的 ESLint
类替换 CLIEngine
类之前,考虑了几种方法。ESLint
类将包含异步方法,作为将异步功能引入核心的起点。最开始, ESLint
类只是对 CLIEngine
的一个封装,随着时间的推移,我们将系统地开始在 ESLint
类中编写新功能。最终, ESLint
和 CLIEngine
类将完全独立。
在 v7.0.0
,CLIEngine
类将被弃用,但不会删除。我们会在将来的主要版本中将 CLIEngine
删除(不用担心,在这样做之前,我们会给您很多提示)。
弃用 Node.js / CommonJS 特定的规则
因此,以下规则将在 core
中被弃用:
在 core
中管理规则是正在进行的 ESLint
维护的重要组成部分。随着项目的发展,我们维护的规则数量也在增加。我们检查了所有当前规则,并确定特定于 Node.js / CommonJS
的规则没有必要包含在未来的 core
中。特别是 Node.js
更倾向于 ESM
作为首选模块系统时。
- callback-return
- global-require
- handle-callback-err
- no-buffer-constructor
- no-mixed-requires
- no-new-require
- no-path-concat
- no-process-env
- no-process-exit
- no-restricted-modules
这些规则将移至 eslint-plugin-node
项目。我们建议用户用插件的方式引入这些规则。这些规则将保留在 ESLint v7.0.0
中,并将在以后的 major
版本中删除。
指令注释中的描述
指令注释描述允许你给自己和其他开发人员留下关于为什么要包含注释的说明。例如:
/* eslint-disable no-new -- this class has a side-effect in the constructor. */
对 ~/.eslintrc 配置文件的使用警告
v6.7.0
中已弃用主目录中的配置文件,并且在 v7.0.0
中使用时会发出警告。长期以来,此功能一直使 ESLint
用户感到困惑,尤其是因为如果找不到其他配置文件, ESLint
只会在主目录中查找配置文件。自引入主目录配置文件以来, ESLint
中的配置系统已发生了很大变化,并且由于具有额外的灵活性,我们认为还有许多比主目录配置文件更清晰的其他配置 ESLint
的选项。
v8.0.0
中将删除对主目录配置文件的支持。
使用–config或时更新基本路径–ignore-path
在 v7.0.0
之前的版本中,ESLint
将解析配置文件中的引用,或者忽略相对于传递给 --config
或 -—ignore-path
的文件位置相关的文件。这没有多大意义,并且会给用户带来混乱和意外行为。在 v7.0.0
中,配置文件和忽略使用 --config
或 --ignore-path
传递的文件使用当前工作目录作为它们的基本路径。
从配置文件目录加载的插件
在v7.0.0
中,将相对于引用插件的配置加载插件。
配置文件中的文件扩展名
ESLint v7.0.0
将读取 overrides
配置部分中的全局模式,以确定要处理的文件。在 v7.0.0
之前,您需要提供 --ext
命令行标志以指定要添加到 lint
的其他文件。
更新了默认 ignore 模式
除了当前的默认值, ESLint
的默认忽略模式将更改为:
- 不忽略
.eslintrc.js
- 不忽略
/bower_components/*
- 在子目录中忽略
node_modules/*
更严格的 RuleTester
将 RuleTester
类添加一些额外的检查,以确保规则的正常工作:
- 如果规则使用非标准
node.start
或node.end
属性,则失败,ESLint
支持的所有解析器可能未提供这些非标准或属性。 - 自动修复程序规则必须测试其修复程序的输出。
- 现在测试代码存在语法错误的地方将失败。
- 如果测试规范包含未知属性,则测试失败。
安装 v7.0.0 的预览版本
如果您想测试 v7.0.0
的开发过程,则可以使用 next
标记从 npm
安装:
npm i eslint@next --save-dev
更多内容请关注官方文档:https://eslint.org/
- 本文链接:https://xuehuayu.cn/article/55756.html
- 版权声明:① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 标为转载的文章来自网络,已标明出处,侵删。