リリース日: 2024年10月9日
記事公開日: 2025年12月18日
最終確認日: 2026年7月25日
Deno 2.0は、Denoの安全性や組み込みツールという方針を保ちながら、Node.jsとnpmの既存資産を利用しやすくしたメジャーリリースです。
この記事は2.0公開当時の変更を記録するものです。 現在の導入判断では、末尾の「2026年時点の確認事項」と最新の公式ドキュメントも確認してください。
Deno 2.0で変わったこと
Node.jsとnpmとの互換性を拡大
Deno 2.0では、Node.js向けプロジェクトを扱うための機能が大きく拡張されました。
package.jsonを認識する- npmパッケージを利用する
- 必要な構成では
node_modulesを使う - Node.js組み込みモジュールとの互換レイヤーを使う
- private npm registryを設定する
既存の構成をすべてDeno専用へ書き換えずに、移行を試せる範囲が広がったことが重要です。
ただし互換範囲には例外があり、どのNode.jsアプリも変更なしで動くわけではありません。
パッケージ管理コマンド
Deno 2.0では、依存関係を扱うコマンドが整理されました。
deno add npm:express
deno remove express
deno install
deno installは、依存関係の導入に使うコマンドとして追加されました。
一方、従来の「スクリプトを実行可能なコマンドとして導入する」用途はdeno install --globalで表します。
Node.js由来のプロジェクトでは、既存のpackage.jsonとDenoの設定をどちらが管理するか、チーム内で決める必要があります。
workspace対応
Deno 2.0はworkspaceを正式に扱い、複数のpackageを同じrepositoryで管理しやすくしました。
deno.jsonを中心とする構成だけでなく、npm workspaceを利用する既存プロジェクトとの接続も重視されています。
ただし、利用しているpackage manager固有の挙動まで同一になるとは限りません。 monorepoでは、install、script、publish、CIを個別に確認します。
Standard Libraryの安定版
Deno Standard LibraryはJSR上のpackageとして提供され、Deno 2.0と同時期に安定版へ到達しました。
import { assertEquals } from "jsr:@std/assert";
assertEquals(1 + 1, 2);
jsr:とnpm:は用途が異なります。
既存のnpm資産を使うのか、TypeScriptとES modulesを前提としたJSR packageを使うのかを、依存先ごとに選べます。
LTS方針
Denoは2.0の発表でLTS運用を案内し、2.1からLTS releaseを開始する方針を示しました。 したがって、2.0自体を「最初のLTS版」と説明するのは正確ではありません。
本番利用では、現在のLTS scheduleとsupport期間を公式ページで確認してください。
互換性で確認すること
Denoの現在の公式ドキュメントも、Node.js互換性には例外があることを説明しています。 移行前に少なくとも次を確認します。
- 利用するNode.js APIが実装済みか
- native addonが必要か
- packageが
node_modulesの配置を前提にしていないか - install scriptやpostinstallに依存していないか
- filesystem、network、environment変数のpermissionが足りているか
- test、build、CLI、production起動がすべて動くか
一部のnative addonでは、ローカルのnode_modulesやFFI permissionが必要です。
また、packageの公開方法やOSによって結果が変わる場合があります。
「起動できた」だけで移行完了とせず、testと主要な入出力を確認しましょう。
速度はruntime version、hardware、workloadで変わります。 公開当時の固定benchmarkを、現在の採用判断へそのまま使わないでください。
2026年時点の確認事項
2026年7月25日の確認時点で、公式blogにはDeno 2.9が2026年6月25日のreleaseとして掲載されています。 Deno 2.0は現在の最新versionではなく、Node.js互換性を大きく広げた節目として読む記事です。
新規導入や移行では、次の順番で確認してください。
- 現在のDeno releaseとLTS scheduleを確認する
- Node.js/npm compatibility documentationで利用中の機能を調べる
- migration guideを読む
- 小さなbranchでtest、build、起動、deploymentを試す
- permissionとCI設定を見直す
基本的な実行方法とpermissionは、Deno入門のPracticeで試せます。
Deno 2.8の変更は、Deno 2.8とimport deferを参照してください。
参考リソース
- Announcing Deno 2(公式)
- Node.js and npm compatibility(公式)
- Deno migration guide(公式)
- Deno release schedule(公式)
- Deno 2.9 release(公式)