JSCSを支援したJavaScript開発者の助けを借りて、プロジェクトは成功を収めることができました。 githubで約5,000の星と1日あたり27,000以上のnpmパッケージのダウンロード 。 それにもかかわらず、新しいメジャーバージョンをリリースせず、その後プロジェクトの作業を停止することにしました。
JSCS 3.0の歴史
この決定は非常に困難でした。 コミットの長いリストは、JSCC 3.0でどれだけ作業したかを示しています。 しかし、そこには表示されませんが、JSSC 3.0の基礎となった新しいCSTプロジェクトに関する作業があります。
JSCS 2.2.0の発表で CSTについて言及したことがあります。 ある時点で、他の多くのプロジェクトと同様にesprimaを使用したJSCSは、コードに複雑な変更を加えることができないことに直面しました。 次に、CST(Concrete Syntax Tree)を思いつきました。その目的は、スタイルおよび論理コード検証のためのツールの現代的な問題を解決することです。 CSTを使用すると、未使用の変数、デッドコードなどを削除できるようになりました。 リンターがあなたの野生の夢で修正できるすべてを修正します:-)
そこで、独自のScope Analyzerを作成しました。 JSCSの各ルールを書き直し、コミットし、コミットし、パフォーマンスのために戦い、再びコミットしました...では、なぜ最後の3番目のバージョンで停止することにしたのですか?
サポート費用
JSCSのようなプロジェクトには、膨大なエネルギーと時間の投資が必要です。 プルリクエストレビュー、バグ修正、ドキュメント作成。 プロジェクトWebサイトのサポートも同様です。 Gitterでのユーザーの質問に対する回答(夜間に発生しました)と同様に。
JSCSチームは、通常は主な仕事の後の夕方または週末に、自由時間で働きました。 しかし、コミュニティからのフィードバックが少なかったため、プロジェクトは重くなりすぎて、純粋な熱意を続けることができませんでした。
ESLintへの参加
見てきたように、ESLintとJSCSはすでに同じ問題を異なる方法で解決しています。 そして、より多くの喜びを持つコミュニティは、1つのリンターを使用し、2つの異なるリンターの間で引き裂かれません。 そして、私たちはコミュニティを支援することにしました。
ESLintとの競争を続ける代わりに、ESLintに参加して、JSCLの開発中に開発した経験とツールをESLintに導入することにしました。
そのため、本日は、JSSC開発チームのほとんどがESLintチームに参加したというニュースをお届けします。 今後3か月間はJSCSを引き続きサポートします。バグを修正しますが、新しい機能はありません。 JSCSリポジトリはどこにも行きません。いつでもコードを分岐して使用できます。 また、CSTの作業を続けます。これがJSリンターの未来だと考えています。 ESLintが、スタイルおよび論理エラーの自動修正のための高品質で機能的なメカニズムの開発を支援できることを願っています。
それにもかかわらず、
CSTを実際にテストし、JSCSをバージョン3にアップグレードするのを手伝っていただければ幸いです。CSTがさまざまなプロジェクトでどのように表示されるかに非常に興味があります。
将来的には、ESLintにアップグレードすることをお勧めします。 ESLintチームと協力して、移行の痛みを軽減するツールとドキュメントを作成しています。 理想的には、移行は一般に目に見えないでしょう:-)
謝辞
JSCSを手伝ってくれたすべての人に感謝します。 あなたのおかげで、JSCSはとても人気が出ました。 そして今、ESLintの作業にご参加ください。
JSCS開発チーム