DenoからNodeへ出戻り、何が変わったか

原題: Friendship ended with Deno, now Node is my best friend

なぜ重要か

Denoユーザーが実運用でNodeへ出戻るケースは、Node.jsの近代化が開発者に実際に届いていることを示す現場の証言として業界の動向を測る一例となる。

英国のWeb開発者David Bushellは2026年10月3日、長年使用してきたDenoからNode.jsへ移行したと自身のブログで報告した。Node v26.10.0でECMAScriptの最新構文がサポートされ、TypeScriptもネイティブ実行可能になるなど、Node.jsの大幅な改善を確認。パッケージ管理にはPNPMとFNMを採用し、静的サイトジェネレーターの移行も最小限の変更で完了したという。

Bushell氏はSvelteKitを使ったクライアント案件でNodeを集中的に使い始め、「いつの間にこんなに良くなったのか」と驚きを隠さない。

最大の変化はDXの向上だ。`require()`の呪縛はなく、モダンなECMAScript構文が一通り使える。TypeScriptもNode v22以降はトランスパイルなしで実行できるようになった。ただし、`node_modules`配下のTypeScriptファイルのstrip(型除去)は意図的に禁止されており、NPMへのTypeScriptパッケージ公開は今も推奨されない。これは技術的制限ではなく哲学的判断だと公式ドキュメントは説明しており、Bushell氏もバンドラー「Tsdown」を使って回避した。

パッケージ管理面では、NPMの代わりにPNPMを選択。post-installスクリプトをデフォルトでブロックする点を評価し、`minimumReleaseAge: 1440`(1日)を設定することで悪意あるパッケージの即時混入を一定程度防ぐ構成にした。バージョン管理にはNVMではなくFNM(Fast Node Manager)を採用している。

静的サイトジェネレーターのDeno→Node移行は予想以上にスムーズだったと述べる。必要な変更は主に2点で、DenoのファイルシステムAPIを`node:fs`に置き換えること、そして`Deno.serve`をHonoのNode adapterに差し替えることだけだったという。「10年前なら大規模リファクタリングが必要だった」と振り返り、Node.jsの成熟を認めた。

一方でNPMとGitHubのMicrosoft管理に対する不満も吐露。自前のForgejo(GitHubの代替)インスタンスに移行したことで、NPMの「provenance」機能が使えなくなる問題にも直面した。

出典

dbushell.com — 元記事を読む →