ESLint 0.4.0 发布

我们刚刚发布了 ESLint 0.4.0,这是一个重要的版本,因为它包含了大量的错误修复和重大更改。

配置文件

  • 配置文件现在可以使用 YAML 格式编写。这包括 .eslintrc 文件。
  • 所有配置文件都可以使用 JSON 或 YAML 格式,无需特殊指示格式

核心

  • 重大变更: 将节点选择器中的 :after 更改为 :exit
  • 切换到使用 optionator 代替 optimist 处理 CLI 输入
  • 将 ESLintTester 分离到其自己的仓库 (https://github.com/eslint/eslint-tester)
  • CLI 过去在没有错误时会输出一个空行,现在在这种情况下不会输出任何内容

性能

  • 实施基准测试以帮助识别性能瓶颈
  • 重构后,我们的基准测试提高了 400-700 毫秒

规则

  • 重大变更: unnecessary-strict 规则已重命名为 no-extra-strict
  • 重大变更: regex-spaces 规则已重命名为 no-regex-spaces
  • 重大变更: no-new-array 规则已重命名为 no-array-constructor
  • 新规则:valid-jsdoc (修复 #536) (Nicholas C. Zakas)
  • 新规则:func-names (修复 #595) (Kyle Nunery)
  • 新规则:no-extra-boolean-cast (修复 #557) (Brandon Mills)
  • 新规则:no-sparse-arrays (修复 #499) (Nicholas C. Zakas)
  • 新规则:no-process-exit (修复 #568) (Nicholas C. Zakas)
  • 新规则:no-labels (修复 #550) (Nicholas C. Zakas)
  • 新规则:no-lone-blocks (修复 #512) (Brandon Mills)
  • 新规则:no-path-concat (修复 #540) (Nicholas C. Zakas)
  • 新规则:no-yoda (修复 #504) (Nicholas C. Zakas)
  • 新规则:consistent-return (修复 #481) (Nicholas C. Zakas)
  • no-unused-vars 中存在一个错误,该错误会在嵌套函数的情况下错误地标记未使用的参数 - 此错误已修复
  • no-cond-assign 中存在一个错误,该错误可能导致抛出错误 - 此错误已修复
  • 所有规则现在都有文档,如果添加规则而没有文档,构建将会失败

其他

破坏性更改

所有重大变更如下

  • unnecessary-strict 规则已重命名为 no-extra-strict
  • regex-spaces 规则已重命名为 no-regex-spaces
  • no-new-array 规则已重命名为 no-array-constructor
  • 将节点选择器中的 :after 更改为 :exit

完整变更日志

以下是此版本中的完整更改列表

  • 变更:将 :after 切换为 :exit (修复 #605) (Nicholas C. Zakas)
  • 修复:确保 no-unused-vars 不会被嵌套函数混淆 (修复 #584) (Nicholas C. Zakas)
  • 更新:.eslintrc 以检查更多内容 (Nicholas C. Zakas)
  • 修复:确保 JSDoc 解析器接受 JSDoc3 样式的可选参数 (Nicholas C. Zakas)
  • 文档:更新文档,其中包含有关 ESLintTester 的链接说明 (Nicholas C. Zakas)
  • 新规则:valid-jsdoc (修复 #536) (Nicholas C. Zakas)
  • #595 改进了 func-names 文档 (Kyle Nunery)
  • #595 添加了更多 func-names 测试 (Kyle Nunery)
  • #595 修复规则消息并添加更多测试 (Kyle Nunery)
  • 使用 optionator 进行选项解析,而不是 optimist (George Zahariev)
  • 包含有关使用 ESLintTester 的说明 (Nicholas C. Zakas)
  • #595 移除测试中的不必要的 ‘function Foo() {}’ (Kyle Nunery)
  • #595 修复空格 (Kyle Nunery)
  • #595 修复代码块中的 markdown (Kyle Nunery)
  • 添加有关 Yeomen 生成器的信息 (Ilya Volodin)
  • #595 添加规则 func-names 的文档 (Kyle Nunery)
  • #595 添加 func-names 规则 (Kyle Nunery)
  • 将变量数组迁移到 map (Brandon Mills)
  • 性能:将 try-catch 移出 verify() 函数以允许 V8 优化 (参考 #574) (Nicholas C. Zakas)
  • 文档:添加运行 npm run profile 的说明 (Nicholas C. Zakas)
  • 重构变量名称查找到一个单独的函数 (Brandon Mills)
  • 优化 no-unused-vars 中的 findVariable() (Brandon Mills)
  • 移动到 tests/bench (Chris Dickinson)
  • 添加 npm run profile (Chris Dickinson)
  • #586 基于 https://github.com/eslint/eslint/pull/590#discussion_r9476367 进行重构 (Christian)
  • #586 添加了 no-unreachable jsdoc,文档说明了 hoisting 情况 (Christian)
  • #586 为 no-unreachable 添加 hoisting 检查 (Christian)
  • readme:移除多余的星号 (Timo Tijhof)
  • #580 移除 eslint.getAllComments(),相关文档,相关测试 (Christian)
  • 添加了错误修复 #582 的测试。测试通过 (Shmueli Englard)
  • 添加了 if 语句的大括号 (Shmueli Englard)
  • 添加了针对修复 #582 的新测试 (修复 582) (Shmueli Englard)
  • 错误 #582:添加检查,如果 node.value 不是字符串,则直接退出 (Shmueli Englard)
  • 更新规则:实现单语句主体的 curly 选项 (修复 #511) (Nicholas C. Zakas)
  • 新规则:no-extra-boolean-cast (修复 #557) (Brandon Mills)
  • 新规则:no-sparse-arrays (修复 #499) (Nicholas C. Zakas)
  • 修复:no-spaced-func 现在是一个错误 (Nicholas C. Zakas)
  • 新规则:no-process-exit (修复 #568) (Nicholas C. Zakas)
  • 新规则:no-labels (修复 #550) (Nicholas C. Zakas)
  • 新规则:no-lone-blocks (修复 #512) (Brandon Mills)
  • 添加了 Emacs/Flycheck 集成 (Nikolai Prokoschenko)
  • 构建:添加性能测试 (Nicholas C. Zakas)
  • 修复:no-cond-assign 不应在存在带有空条件的 for 循环时抛出错误 (修复 #53) (Nicholas C. Zakas)
  • 文档:添加 no-regex-spaces 的文档,所有文档错误现在都会破坏构建 (关闭 #562) (Nicholas C. Zakas)
  • 重命名:regex-spaces 为 no-regex-spaces (Nicholas C. Zakas)
  • 文档:添加 no-underscore-dangle 的文档 (参考 #562) (Nicholas C. Zakas)
  • 文档:添加 no-undef-init 的文档 (参考 #562) (Nicholas C. Zakas)
  • 文档:添加 no-return-assign 的文档 (参考 #562) (Nicholas C. Zakas)
  • 修复:no-return-assign 消息中的拼写错误 (Nicholas C. Zakas)
  • 文档:添加 no-new-wrappers 的文档 (参考 #562) (Nicholas C. Zakas)
  • 文档:添加 no-new-object 的文档 (参考 #562) (Nicholas C. Zakas)
  • 文档:添加 no-implied-eval 的文档 (参考 #562) (Nicholas C. Zakas)
  • 文档:更新规则开发文档 (Nicholas C. Zakas)
  • 测试:将 ESLintTester 移动到外部依赖项 (修复 #480) (Nicholas C. Zakas)
  • 文档:添加已知集成的列表 (Nicholas C. Zakas)
  • 修复 #570 (dmp42)
  • 记录 no-array-constructor 规则 (Michael Ficarra)
  • 修复 #500:no-array-constructor 不应标记 1 个参数的构造函数 (Michael Ficarra)
  • 修复 #501:no-array-constructor 识别 CallExpression 形式 (Michael Ficarra)
  • 重命名 no-new-array 规则为 no-array-constructor;参考 #501 (Michael Ficarra)
  • 修复:使 radix 规则在第二个参数无效时发出警告 (修复 #563) (Nicholas C. Zakas)
  • 文档:添加 no-floating-decimal 文档 (参考 #562) (Nicholas C. Zakas)
  • 新规则:no-path-concat (修复 #540) (Nicholas C. Zakas)
  • 文档:添加一些缺失的规则文档 (参考 #562) (Nicholas C. Zakas)
  • 修复:CLI 在没有警告时不应输出任何内容 (修复 #558) (Nicholas C. Zakas)
  • 新规则:no-yoda (修复 #504) (Nicholas C. Zakas)
  • 新规则:consistent-return (修复 #481) (Nicholas C. Zakas)
  • 重写配置文档,包含有关全局变量的信息 (修复 #555) (Nicholas C. Zakas)
  • 允许 YAML 配置文件 (修复 #491) (Nicholas C. Zakas)

最新的 ESLint 新闻、案例研究、教程和资源。

ESLint v10.0.0 released
9 分钟阅读

ESLint v10.0.0 发布

我们刚刚发布了 ESLint v10.0.0,这是 ESLint 的一个重大版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。此版本还包含一些破坏性更改,请仔细阅读以下内容。

ESLint v10.0.0-rc.2 released
1 分钟阅读

ESLint v10.0.0-rc.2 发布

我们刚刚发布了 ESLint v10.0.0-rc.2,这是 ESLint 的补丁版本升级。此版本修复了先前版本中发现的几个错误。

ESLint v10.0.0-rc.1 released
2 分钟阅读

ESLint v10.0.0-rc.1 发布

我们刚刚发布了 ESLint v10.0.0-rc.1,这是 ESLint 的次要版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。