最近のESLint 7.0、7.1、および7.2リリースでは、多くの開発者エクスペリエンスの改善が導入され、Node.jsバージョン8のサポートが削除され、nullish coalescing、[import.meta
]、export * as ns from 'module'
構文などのES2020機能のサポートが追加されている。typescript-eslintには、ESLintリリースおよびTypeScriptの更新に合わせた、いくつかの最近のリリースもある。
2019年12月のNode.js 8.0のEOL (end-of-life) に合わせて、ESLint 7.0はNode.js 8のサポートを削除する。ESLintアーキテクチャをさらに洗練するために、ESLint 7.0は10個のNode.js固有のルールをコアからeslint-plugin-nodeプラグインに移動する。
ESLint 7.0では、多くのルールがES2020 BigIntサポートの更新を受けた。すべての開発者が従うことが推奨されるデフォルトのルールを提供するeslint:recommended
ルールセットには、複製ロジック、インポート割り当ての欠落、および返さないセッターに関連する追加のルールが含まれるようになった。
ESLint 7.0リリースは、リリースに比較的長い時間がかかった。ESLintの作成者であるNicholas Zakas氏が説明したように:
ESLint v7.0.0のリリースには長い時間がかかりました。リリース間の5か月の遅れは、プロジェクトやコミュニティにとって良くなかったことがわかっています。何がうまくいかなかったのか、そして将来のメジャーリリースでこれを繰り返さない方法を検討しています。メジャーリリースは年に1回に制限するようにしています。2週間ごとに定期的な更新を行うようにしていますが、5か月間更新していませんでした。それを修正する必要があります。
Zakas氏の言い分に対するコミュニティの反応は、定期的にリリースするという彼らのコミットメントを支持し、感謝していた。
ESLint 7.0リリースには、デフォルトの無視パターンと、.js
の拡張子以外を持つファイルが構成で指定されている場合のリントとの開発エクスペリエンスに対する多くの改善が含まれている。
開発者がより正確なドキュメントを提供できるように、ディレクティブコメント内の記述によって、開発者はコードブロックに対してリントルールが無効になっている理由を説明できる。
ESLint 7.0でのその他の開発者エクスペリエンスの改善には、プラグインのカスタムルールをテストするためのRuleTesterクラスでの追加の検証、およびより良い構成とプラグインの解決が含まれる。プロジェクト外の共有構成ファイルを必要なプラグインと同じ場所に配置できるようになり、ユーザは共有プラグインをプロジェクトに直接インストールせずに利用できるようになった。
ESLint 7.0のその他の重要な改善点は、同期APIであるCLIEngineから非同期APIであるESLintへの変更である。この変更により、並列にリントするなどの機能の実装が可能になる。
ESLint 7.0リリースでは、ES 7.0リリースノートに概説されている多くの重大な変更が導入されている。ESLintの6.xバージョンからアップグレードする開発者は、ESLint 6.7から7.0への移行ガイドを確認することをお勧めする。
ESLint 7.1および7.2リリースは、7.0と比較してマイナーである。ESLint 7.1では、数値精度の低下を防ぐための新しいルールが導入され、パディング、スペース、改行に関する多くの既存のルールが改善され、いくつかのルールとエッジケースが修正されている。変更の完全なリストについては、ESLint 7.1リリースノートを参照してください。
ESLint 7.2は、nullish coalescing演算子、export * as ns from 'module'
構文、import.meta
など、一部のES2020構文機能のサポートを追加する。オプションチェーンのESLintサポートは、ESLint 7.3リリースで提供されるはずである。
ESLint 7.1リリースと同様に、ESLint 7.2リリースは、特にさまざまな高度なシナリオでの括弧とスペースに関する多くの既存のESLintルールを拡張する。変更の完全なリストについては、ESLint 7.2リリースノートを参照してください。
TSLintの廃止後、ESLintはtypescript-eslintの基盤にもなる。
ESLint 7.0リリースは、typescript-eslint 3.0リリースの基盤である。Node.js 8のサポートを終了するだけでなく、typescript-eslint 3.0はTypeScript 3.2のサポートを削除して、メンテナンス工数を軽減します。推奨およびrecommended-requiring-typecheckingルールセットは、eslint-recommendedルールセットから継承されるようになった。
typescript-eslint 3.0では、多数の型チェックルールの変更が更新された。いくつかのルールは非推奨になり、最新のTypeScriptのベストプラクティスを反映した新しいルールに置き換えられた。最新のESTree仕様とTypeScript 3.9での変更を反映するために、抽象構文ツリーにその他の変更が加えられた。
typescript-eslint 3.0リリースでは、TypeScript 3.9のnon-nullアサーションの変更の処理も改善されている。
typescript-eslint 3.1および3.2リリースでは、TypeScriptのリントにいくつかの重要な改善が加えられ、[3.3]リリースでは、次のTypeScript 4.0リリースとTupleType
への変更のサポートが開始される。
ESLintとtypescript-eslintは、頻繁な更新と規則の絶え間ない改良により、エラーを減らし、コードベースの一貫性を維持することにより、JavaScriptおよびTypeScriptコードを検証するための安定した基盤を提供する。今後のリリースでは、ES2020およびTypeScript 4.0の完全なリントのサポートが追加される予定である。
ESLintはOpenJS Foundationプロジェクトであり、MITライセンスの下でオープンソースソフトウェアとして利用できる。ESLint GitHubリポジトリを通した貢献を歓迎する。貢献者は、ESLint貢献ガイドラインに従う必要がある。
typescript-eslintは、TypeScriptをパースするために別のASTを必要とするため、ESLintとは別のプロジェクトである。typescript-eslintは、BES 2節ライセンスの下でオープンソースソフトウェアとして利用できる。typescript-eslint GitHubリポジトリを通した貢献を歓迎する。貢献者は、typescript-eslint貢献ガイドラインに従う必要がある。