Deno 2.0リリース - Node.js互換性の大幅強化

6分 で読める | 2025.12.18

公式ドキュメント

リリース日: 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互換性を大きく広げた節目として読む記事です。

新規導入や移行では、次の順番で確認してください。

  1. 現在のDeno releaseとLTS scheduleを確認する
  2. Node.js/npm compatibility documentationで利用中の機能を調べる
  3. migration guideを読む
  4. 小さなbranchでtest、build、起動、deploymentを試す
  5. permissionとCI設定を見直す

基本的な実行方法とpermissionは、Deno入門のPracticeで試せます。 Deno 2.8の変更は、Deno 2.8とimport deferを参照してください。

参考リソース

← 一覧に戻る
PR
PR
PR
PR