Fork me on GitHub

JSer.info 14周年

Edit on GitHub 編集履歴を見る

JSer.info は、2011年1月16日から開始して、2025年1月16日で14周年を迎えました🎉

書くのがだいぶ遅くなってしまいましたが、14周年を迎えたことを記録しておきます。

Node.js周りの変化

Node.js周りの変化が大きかった1年な気がしました。
Node.jsでは、require(esm)やTypeScriptのサポートなど長年議論されていていたものが大きく進んだ気はしています。

たとえば、eventmitという小さなライブラリを新しいNode.jsの機能を使って書き直してみると次のような変更ができます。

Node.js自体の機能によって依存が減り、またライブラリを公開する際にCommonJSのビルドを公開する必要性もなくなってきています。

Denoもv2をリリースして、LTSも公開しています。

また、Server Runtimeの相互運用性について議論していたWinterCGが、TC55として標準化の作業を進めることも発表されています。

Bunも相変わらずリリースを重ねていて、最近ではNode.jsが内部で使うテストケースを実行してNode.js compatibilityを高めています。

また、Bun v1.2.14では、pnpm Catalogsと同様の機能としてCatalogsをサポートするなど、パッケージマネージャーとしての機能も充実してきています。

パッケージマネージャー

パッケージマネージャーでは、pnpm 10でインストールするパッケージのlifecycle scriptをデフォルトで実行しないように変更されたのが大きなものだったと思います。

この変更の直接的なきっかけはRspackのセキュリティインシデントですが、今後も同様の動作になるパッケージマネージャーは増えていくのかもしれません。(Bunは既に同様の動作になっています)

また、元npmのチームを中心にしたvltという新しいパッケージマネージャー & registryが登場しています。
こちらは、公開後は特にまだ大きな動きはありませんが、JSRもありRegistry周りについても色々と動きが見られた気はします。

pnpm(pnpm add jsr:<scope>/<pkg_name>)とYarn(yarn add jsr:<scope>/<pkg_name>)がJSRのサポートをするなど、パッケージマネージャーのサポートも増えてきています。

Linter

JavaScriptにおけるLinterではESLintが引き続き一番利用者が多いと思います。
ESLint 9ではFlat Configへの移行など大きな変更もあったため、一部で移行の問題が起きたりもしていました。

今まではESLintの本体にはTypeScriptに関するルールは含まれていなかったため、typescript-eslintがある種別のツールとしてこの機能を提供していました。
ESLint v9.23.0 releasedあたりから、この方針が少し変更され、ESLintのコアルールもTypeScriptの構文サポートを含むようになってきています。

また、Biome/deno lint/oxlintなどのJavaScript以外の言語で書かれたLinterも活発に開発されています。

ESLintの大きな特徴としてプラグインでルールを追加できる点があります。色々なライブラリやフレームワークがあるJavaScriptの世界では、Linterのプラグインに対するニーズが高いです。

そのため、JavaScript以外の言語で書かれたLinterでは、プラグインをどう扱うかが大きな課題となっています。それぞれのLinterでアプローチが異なりますが、それぞれのLinterがプラグインサポートの仕組みを開発しています。

一方で、ESLintはHTMLやCSSといったJavaScript以外の言語も扱えるようなlanguage-agnostic linterとなる方向性を示しています。

実際にCSS Language Plugin/HTML ESLINT/JSON Language Pluginなどがリリースされています。

そのため、Linterの世界はまだまだ色々な動きがある状態が続きそうです。

まとめ

特にまとめはないですが、JSer.infoは14周年を迎えました。(だいぶ書くのが遅れました)

来年は15周年を迎えるので、久々にイベントとかできるといいなと思っています。

JSer.infoでは、JSer.info Sponsorsを募集しています。

JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。

この記事へ修正リクエストをする
JSer.info Slackに参加する