Denoとは|Node.js・Bunとの違い、Deno 2の特徴と実務での使いどころ
最終更新日:2026/10/08
Denoとは、Node.jsの作者が設計し直したJavaScript/TypeScriptランタイムです。TypeScriptを設定なしで実行でき、権限を明示して動かします。Node.js・Bunとの違い、Deno 2.9とDeno Deployの現状、フリコン掲載案件での扱いまでNode.js経験者向けに整理します。
先に結論
Denoは、TypeScriptを追加設定なしで実行でき、ファイル・ネットワーク・環境変数へのアクセスをフラグで明示的に許可するJavaScript/TypeScriptランタイム。2026年10月時点の最新は2.9系で、LTS(長期サポート版)も2.9系で2027年1月31日まで保守される
Node.jsとの差は縮まっている。Node.jsもv24.12.0/v25.2.0で型ストリップ(型注釈を取り除いて実行)が安定版になり、.tsファイルを既定で実行できる。ただしenumなど変換が必要な構文と型検査は対象外で、ここはDenoのほうが手数が少ない
公式クラウドのDeno Deployは新プラットフォームへ移行済み。旧版(Deploy Classic)は2026年7月20日で終了と告知され、新版の実行リージョンは米国と欧州の2つ。古い記事の手順はそのまま使えない
フリコンに掲載されたTypeScript案件2,492件(募集終了を含む)について、一覧に出るタイトルと概要文を照合した範囲では、Deno・Bun・Honoに触れた案件は0件だった(2026年10月8日時点・詳細ページの全文は対象外)
フリーランスとしては「Deno単独で案件を探す」より、Node.js/TypeScriptの実務経験を主軸に、Denoを選定・提案できる立ち位置を取るのが現実的
この記事でわかること
DenoがNode.jsとどこで違い、どこまで互換があるのか(2026年10月時点の差分)
TypeScript実行、権限モデル、内蔵ツール、Deno Deployの現状
Deno・Bun・Node.jsの3ランタイムを実務の選定基準で比べた結果
フリコン掲載のTypeScript・Node.js案件の単価帯と、Denoがどう扱われているか
学習ロードマップと、旧バージョンの資料で詰まりやすいポイント
目次
Denoとは|開発背景と基本コンセプト
Node.jsとの違い|7つの観点で比較
Denoの主要な特徴|TypeScript実行・権限・モジュール解決
Denoでできること・ユースケース
Deno・Bun・Node.jsの違い|3ランタイム比較
フリーランス視点のDeno案件動向|フリコン掲載データ
Denoの学習ロードマップと詰まりやすいポイント
まとめ
よくある質問
Denoとは|開発背景と基本コンセプト
Denoは、Node.jsを設計・実装したRyan Dahl氏が、Node.jsの反省点を踏まえて作り直したJavaScript/TypeScriptランタイムです。本体はRustで実装され、V8エンジンとTokio(Rustの非同期ランタイム)の上に構築されています。
対象読者は、Node.jsやTypeScriptで一定の実務経験があり、モダンな選択肢を検討したいバックエンド/フルスタックエンジニアです。JavaScript未経験の方は、先にJavaScriptとは?できることや年収、将来性について解説やTypeScriptとは?JavaScriptとの違いや年収、将来性について解説を読んでから戻ってくると理解しやすくなります。
Denoが生まれた背景
Ryan Dahl氏は2018年のカンファレンス講演「Node.jsについて後悔している10のこと」で、次の点を挙げていました。
Promiseを最初からコア機能として採用しなかった
セキュリティ機構がなく、任意のスクリプトがファイルやネットワークに自由にアクセスできる
node_modulesとpackage.jsonという独自のモジュール解決を作ってしまった
ビルドの仕組みを内包せず、外部ツールに依存させた
Denoはこれらへの回答として設計されました。開発着手からv1.0(2020年)までは約2年。2024年10月のv2.0では方針を変え、Node.js/npmの資産をそのまま使える方向へ舵を切っています。
名前の由来
「Node」のアナグラム(文字の並べ替え)です。Node.jsを意識した後発ランタイムであることが、名前からも読み取れます。
Deno社と商用プロダクト
Ryan Dahl氏らが設立したDeno Land Inc.が開発を主導しています。クラウド実行基盤「Deno Deploy」と、モジュールレジストリ「JSR(JavaScript Registry)」も同社の運営です。本体はMITライセンスのオープンソースとしてDeno GitHubリポジトリで公開されています。
2026年10月時点のバージョンとサポート期間
本記事のバージョン情報は、2026年10月8日時点のDeno公式ドキュメントとGitHubのリリース一覧に基づきます。
最新は2.9系です(v2.9.7・2026年9月17日公開)。 マイナーバージョンは12週間ごとに出る方針で、2.9.0は2026年6月25日に公開されました。
LTSは2.9系で提供されています。Denoの公式ドキュメント(安定性とリリース)によると、v2.9.3以降が対象で、保守期限は2027年1月31日です。業務で長く動かすコードは、LTSの版に合わせておくと更新計画を立てやすくなります。
2.9系では、パラメータ化テスト(Deno.test.each)、スナップショットテスト、テストの分割実行(--shard)が本体に入りました。bun・npm・pnpm・yarnのロックファイルを元に、Denoのロックファイルを作る機能も追加されています。他ランタイムからの移行を意識した変更が続いています。
Node.jsとの違い|7つの観点で比較
DenoとNode.jsの違いは、TypeScriptの扱い・セキュリティ・パッケージ管理・標準ライブラリ・内蔵ツール・モジュール規格・Web標準APIの7観点で整理できます。ただし2024年以降はNode.js側も機能を取り込んでおり、差は「ある・ない」から「手数の多い・少ない」に変わりつつあります。
Node.jsそのものの理解はNode.jsとは?特徴・できること・年収・将来性をフリーランス視点で徹底解説にまとめています。
比較表:Node.jsとDenoの主な違い(2026年10月時点)
観点 | Node.js | Deno |
|---|---|---|
TypeScript実行 | 型ストリップで.tsを既定で実行(v24.12.0/v25.2.0で安定版)。enum等の変換が必要な構文は非対応、型検査なし | 変換して直接実行(enum等も可)。型検査はdeno checkで実行 |
セキュリティ既定値 | 既定では全権限(--permissionで制限可) | ファイル・通信・環境変数などはフラグで明示 |
パッケージ管理 | npm/yarn/pnpm+package.json | JSR/npm互換(deno.json。package.jsonとも共存) |
標準ライブラリ | node:モジュール中心 | JSR上の公式標準ライブラリ(@std) |
内蔵ツール | node:testは内蔵。リンター・フォーマッタは別途導入 | test・fmt・lint・bench・compile・bundleを同梱 |
モジュール規格 | CommonJSとESMが混在 | ESMネイティブ(CommonJSは互換モード) |
Web標準API | fetch等は対応済み。Node固有APIも多い | fetch・WebSocket・URLPattern等を優先採用 |
違い1:TypeScriptの扱い
Node.jsでも.tsファイルは直接動くようになりました。 Node.jsの公式ドキュメントによると、型ストリップはv22.6.0で追加され、v23.6.0/v22.18.0で既定で有効、v25.2.0/v24.12.0で安定版になっています(版番号は同ドキュメントの更新履歴に基づく)。
ただし、Node.jsの型ストリップは型注釈を空白に置き換えるだけです。enum、値を持つnamespace、パラメータプロパティのように変換が必要な構文はエラーになり、型検査もtsconfig.jsonの読み込みも行いません。
DenoはTypeScriptを内部で変換してから実行するため、enumのように変換が必要な構文にも対応します。型検査はdeno checkコマンド、または実行時の --check オプションで行います。実務上の差は「.tsが動くか」ではなく、「既存のTypeScriptコードを書き換えずに動かせるか」と「型検査まで1つのツールで済むか」です。
違い2:セキュリティモデル
Node.jsは既定では、ファイル・ネットワーク・環境変数へのすべてのアクセス権を持って起動します。--permission フラグで制限する仕組みもありますが、明示的に有効にした場合だけです。マルウェア入りnpmパッケージが話題になるたび、この既定値が指摘されてきました。
Denoは逆で、許可フラグを付けない限り主要なリソースにアクセスできません。ネットワーク通信は --allow-net、環境変数の読み取りは --allow-env、ファイル読み込みは --allow-read で許可します。v2.5からは、deno.jsonに名前付きの「権限セット」を書き、-P オプションで呼び出せるようになりました。テスト用・本番用で許可範囲を切り替える運用もしやすくなっています(詳細はDenoの公式ドキュメントの権限セクションを参照)。
違い3:パッケージ管理
Node.jsはnpm/yarn/pnpmとpackage.json、node_modulesで依存を管理します。
Denoは初期、URLから直接importする方式(deno.land/stdのURLを書く形)を採っていました。実務ではロックと再現性の問題が出やすく、v2ではJSR(JavaScript Registry)とnpm互換モードを推奨する形になっています。npmパッケージは「npm:」の接頭辞を付けてそのまま読み込めます。package.jsonやnode_modulesとも共存できるため、Node.jsからの部分移行がしやすくなりました。
違い4:標準ライブラリ
Denoは、ファイルI/O・暗号処理・テスト補助などの公式ライブラリ群をJSR上で@stdとして整備しています。Node.jsもnode:cryptoやnode:fs/promisesなどの内蔵モジュールを備えており、「Node.jsは標準ライブラリが薄い」とは言えません。違いはWeb標準APIとの揃え方で、ブラウザと同じ書き方を優先したい場面ではDenoのほうが迷いにくい設計です。
違い5:内蔵ツール
Denoは次のコマンドを本体に同梱しています(最新の一覧はDeno公式ドキュメントで確認してください)。
deno test:テストランナー
deno fmt:フォーマッタ
deno lint:リンター
deno bench:ベンチマーク
deno compile:単一実行ファイルの生成
deno bundle:バンドル(v2.0でいったん外れ、v2.4で復活)
deno task:タスクランナー
Node.js側では、Jestテストとは|JavaScriptテストの基本・案件単価・学習ロードマップで紹介しているJestや、ESLint・Prettierを組み合わせるのが一般的です。テストランナーはNode.js 20でnode:testが安定版になっており、この項目の差は縮まっています。
違い6:モジュール規格
Node.jsは長くCommonJS(require)を中心に発展し、後からESM(import/export)が入りました。両者の混在は「Cannot use import statement outside a module」エラーの温床です。DenoはESMネイティブで、CommonJSは互換モードで動きます。既存コードがCommonJSに依存していると、そのままでは動かない箇所が出ます。
違い7:Web標準APIの優先
DenoはfetchやWebSocket、URLPatternといったWeb標準APIを、ブラウザと同じ感覚で書けるようにしています。ブラウザ側のコードをほぼそのまま動かせるケースがあり、WebAssembly(Wasm)とは|仕組み・対応言語・案件動向を解説と組み合わせたエッジ処理でも扱いやすい設計です。
ミニFAQ:Node.jsが.tsを動かせるなら、Denoを選ぶ理由はなくなった?
なくなってはいませんが、理由は絞られました。権限を最小化して動かしたい、型検査やリンターまで1つのツールで済ませたい、という条件がそろうときにDenoの利点が残ります。.tsを動かすだけが目的なら、Node.jsで足りる場面が増えています。
Denoの主要な特徴|TypeScript実行・権限・モジュール解決
Denoの特徴として開発体験に効くのは、TypeScriptの直接実行、権限ベースのセキュリティ、JSR/npm/URLを組み合わせたモジュール解決、本体同梱のツール群、そして公式クラウドのDeno Deployです。
TypeScript直接実行の実務インパクト
deno run main.ts のように.tsファイルをそのまま実行できるため、CLI・スクリプト・小規模なAPIで手数が減ります。tsconfig.jsonの調整、ESM対応、CommonJSとの混在で消耗する時間を削れるのは、日々の作業で効いてくる差です。
一方で、deno runは既定では型検査をしません。型エラーでCIを落としたい場合は、deno check を工程に入れるか、--check を付けて実行します。
権限ベースのセキュリティ
Denoはネットワーク、ファイル、環境変数、サブプロセス起動、FFI(他言語ライブラリの呼び出し)を個別のフラグで管理します。実務でよく使う組み合わせは次のとおりです。
--allow-net=api.example.com:特定ドメインとの通信だけを許可
--allow-read=./data:特定ディレクトリの読み込みだけを許可
--allow-env=DATABASE_URL:特定の環境変数の読み取りだけを許可
--allow-all(-A)で全許可もできますが、それは「Node.jsと同じ状態」です。CIやコンテナで最小権限のまま回せることが、Denoを採用する旨みになります。
JSR・npm・URLを組み合わせたモジュール解決
v2以降は、次の3系統を使い分けるのが標準的です。
JSR経由:jsr:@std/http のように公式レジストリから取得する
npm互換:npm:express@4 のようにnpmパッケージを直接読み込む
URL直import:今も使えるが、実務ではJSRやnpm互換が優先される
deno.jsonのimport mapで参照先を一元的に別名化できます。Node.jsからの部分移行なら、まずnpm互換で既存資産を動かし、少しずつJSRの標準ライブラリに置き換える進め方が現実的です。
内蔵ツールで初速を出しやすい
新規プロジェクトの立ち上げで、Jest・ESLint・Prettier・tsconfigを個別に設定する時間を削れます。設定ほぼゼロで始められるため、社内スクリプト、小さなAPIサーバー、CLIの試作で強みが出ます。
なお、deno fmtは整形ルールの主張が強めで、既存のPrettier設定と差が出ます。既存プロジェクトに後から入れる場合は、整形差分の扱いを先に決めておくと揉めません。
Deno公式のクラウド:新しいDeno DeployとDeno KV
Deno Deployは2026年に新プラットフォームへ切り替わりました。 公式の移行ガイドでは、旧版のDeploy Classic(dash.deno.com)とSubhosting v1 APIを2026年7月20日で終了すると告知しています。新版の管理画面はconsole.deno.comです。
旧版と新版の主な違いは次のとおりです(移行ガイドの記載に基づく)。
項目 | Deploy Classic(旧版) | 新しいDeno Deploy |
|---|---|---|
実行リージョン | 6リージョン | 米国・欧州の2リージョン(セルフホストも可) |
GitHub連携 | GitHub ActionsのYAMLで設定 | アプリ設定から接続。ビルドも統合 |
Deno KV | 利用可 | 利用可(旧版のデータは自動移行されない) |
キュー(Kv.enqueue) | 利用可 | 非対応 |
Deno.cron | 利用可 | そのまま動く |
デプロイ用CLI | deployctl | deno deployサブコマンドへ移行 |
旧版の記事にある「世界の多数のリージョンへ自動で分散」という説明は、新版にはそのまま当てはまりません。 レイテンシを重視するなら、利用者の所在地に近いリージョンで足りるかを確認します。
料金はDeno Deployの料金ページによると、無料のFreeプランがあり、受信リクエストは月100万件まで、KVストレージは1GiBまでです(2026年10月時点)。個人の検証やポートフォリオなら無料枠で十分に試せます。サービス概要はDeno Deploy公式ドキュメントを参照してください。
Denoでできること・ユースケース
Denoは、サーバーサイドAPI、エッジ/サーバーレス、CLIツール、開発補助スクリプト、フルスタックWebアプリに対応します。ここでは実務で採用されやすい用途を整理します。
バックエンドAPIサーバー
Node.jsでExpress.jsとは|Node.js定番FW・NestJSとの違い・案件単価やNestJSとは?Express.jsとの違い・特徴・案件単価をフリーランス視点で徹底解説を使うようなREST/GraphQL APIを、Denoでも構築できます。フレームワークは、Oak(Koaに近い設計)、Hono(軽量で複数ランタイム対応)、Fresh(サーバー側レンダリング中心のフルスタック)が代表的です。
HonoはNode.js・Bun・Cloudflare Workersでも動くため、ランタイムを後から変えられる余地を残せます。Honoを使ったTypeScriptの構成例はTypeScript開発環境2026|Hono・Prisma・Zodで組むモダンスタックで紹介しています。
エッジ/サーバーレス
Deno Deployと組み合わせ、API・BFF・認証プロキシとして使うケースがあります。前述のとおり新版のリージョンは2つです。世界中に細かく分散させたい用途では、他のエッジ基盤と比べてから決めるのが無難です。
CLIツール・スクリプト
.tsファイル単体で実行できることと、deno compileによる単一バイナリ生成を組み合わせると、社内配布用のCLIに向きます。配布先にNode.jsやTypeScriptの実行環境を求めずに済むのは、社内展開の手間を減らすうえで効きます。
開発補助・ジェネレーター
deno.jsonの「tasks」に、ビルド補助・コード生成・CIタスクを書けます。ちょっとした処理のためにNode.jsプロジェクトを立ち上げるのが億劫なとき、.tsファイルを1本置くだけで済むのは楽です。
フルスタックWebアプリ(Fresh)
Deno公式のFreshは、Islands Architecture(必要な部品だけクライアント側で動かす設計)でJavaScriptの送信量を抑えるフレームワークです。執筆時点の2系ではViteのプラグインとして動く形に刷新され、HMR(変更の即時反映)にも対応しています。
DenoはNode.jsの代替になる?
DenoはNode.jsの全面的な代替というより、部分導入で強みが出るランタイムです。 「新規のマイクロサービスをDenoで書く」「社内CLIだけDenoにする」といった使い方が目立ちます。既存のNode.jsプロジェクトを丸ごと移す場合は、CommonJS依存やNode固有ライブラリの互換確認が現実的なハードルになります。
Deno・Bun・Node.jsの違い|3ランタイム比較
DenoとBun、Node.jsは同じJavaScript/TypeScriptを動かすランタイムですが、設計思想・得意領域・運営体制が異なります。単純な速度比較ではなく、「現場で選ばれる理由」で比べると判断しやすくなります。Bunの詳細はBunとは|JavaScriptランタイムの特徴・Node.js/Denoとの違い・案件動向で解説しています。
比較サマリ表(2026年10月時点)
観点 | Node.js | Deno | Bun |
|---|---|---|---|
初回公開 | 2009年 | 2020年(v1.0) | 2022年(v1.0は2023年) |
実装言語 | C++ | Rust | Zig |
JSエンジン | V8 | V8 | JavaScriptCore(Safari系) |
運営 | OpenJS Foundation | Deno Land Inc. | Anthropic(2025年12月に買収を発表・MITライセンスは継続) |
TypeScript | 型ストリップで実行(変換が必要な構文は非対応) | 変換して直接実行 | 変換して直接実行 |
セキュリティ既定値 | 全許可 | 権限フラグ制 | 全許可 |
パッケージ管理 | npm/yarn/pnpm | JSR/npm互換 | bun install(npm互換) |
Node.js互換性 | 本家 | 互換モードあり | 高い互換性を掲げる |
Anthropicは2025年12月、公式発表でBunの買収を明らかにしました。同発表では、MITライセンスとGitHubでの公開開発は継続するとしています。
選定の目安
大規模プロジェクト、実績重視、チームの人数が多い:Node.js
権限の最小化、TypeScriptの直接実行、ツール一体型を優先:Deno
パッケージのインストール速度や起動時間を最優先:Bun
ベンチマークでは、インストールや起動の速さでBunが強い結果を示すケースがあります。ただし、実装の成熟度や採用実績まで含めると、実務ではNode.jsが本命で、Deno・Bunは用途を絞って採用される構図が続いています。後述するフリコンの掲載データでも、要件として名前が挙がるのはTypeScriptとNode.jsでした。
「事実上の標準」と断定しない理由
ランタイムの勢力図は変化が速く、GitHubのスター数や求人件数のような観測指標なしに「Denoが第一候補」「Bunが最有力」と書くと、数か月で古くなります。技術選定の資料では、「特定の用途では有力」「執筆時点で採用例が増えてきた部類」といった観測ベースの表現に留めるのが安全です。
フリーランス視点のDeno案件動向|フリコン掲載データ
フリコンの掲載データでは、Denoは「案件の要件」としてはまだ表に出ていません。 求められているのはTypeScript・Node.jsそのものの実務力です。
TypeScript・Node.js案件でDenoが出てくる頻度
2026年10月8日に、フリコンのTypeScript・Node.jsのタグ別案件一覧を全ページ取得し、各案件のタイトルと概要文に語が含まれるかを機械的に照合しました。
TypeScript案件:募集中1,206件、募集終了を含む全2,492件
Node.js案件:募集中328件
Deno・Bun・Hono・Freshに触れた案件:いずれも0件
参考:サーバーレス(Lambda等)に触れた案件はTypeScriptで23件(募集終了を含む)
概要文は一覧用の抜粋(中央値で約300字)で、詳細ページの全文ではありません。歓迎スキルの欄などで触れている案件が漏れている可能性はあります。それでも、Denoを主な要件として募集する案件は、今回確認した範囲では見当たりませんでした。
TypeScript・Node.js案件の単価帯(フリコン掲載・募集中)
以下は、フリコンに掲載中の案件のうち、TypeScriptまたはNode.jsのスキルタグが付いた案件を集計した参考値です(2026年10月8日取得・募集中のみ)。単価帯は各案件の募集単価レンジの上限で分けています。掲載時の単価であり、成約単価ではありません。両方のタグが付いた案件は、それぞれの列に重複して入っています。
募集単価の上限 | TypeScript(1,206件) | Node.js(328件) |
|---|---|---|
60万円未満 | 33件(2.7%) | 12件(3.7%) |
60万円台 | 173件(14.3%) | 61件(18.6%) |
70万円台 | 427件(35.4%) | 100件(30.5%) |
80万円台 | 282件(23.4%) | 73件(22.3%) |
90万円台 | 157件(13.0%) | 48件(14.6%) |
100万円以上 | 134件(11.1%) | 34件(10.4%) |
掲載案件の募集単価レンジ上限の平均は、TypeScriptが80万円、Node.jsが79万円でした。どちらも70万〜80万円台に約6割が集まっています。上限が100万円以上の案件は約1割です。
Deno経験が単価に上乗せされていることを示すデータは、今回の集計からは得られていません。単価を左右するのは、Denoの有無よりも、TypeScript/Node.jsでどこまでの範囲を担えるか(設計、クラウド構成、チームのリード等)と考えるのが自然です。TypeScriptとNode.jsの単価をもう少し細かく見たい方は、TypeScriptフリーランスの単価相場と案件の探し方|経験別・年収の実態とNode.jsフリーランスの単価相場と案件動向|経験別・スキル別レンジにまとめています。
自分のスキルでどの単価帯を狙えるか気になる方は、無料のフリーランスエンジニア単価診断で市場単価の目安を確認できます。掲載中の案件は、TypeScriptの案件一覧とNode.jsの案件一覧から探せます。
Denoの経験が活きやすい場面
求人票にDenoと書かれていなくても、次のような案件ではDenoの知識が判断材料として役に立ちます。
スタートアップの新規プロダクトで、TypeScript前提のバックエンドを一から組む
社内ツール、CLI、コード生成スクリプトなど、小回りの利く開発を任される
Honoのように複数ランタイムで動くフレームワークを採用し、実行環境を比較検討する
依存パッケージの安全性が問われ、権限を絞った実行環境を提案できると評価される
いずれも、Node.js/TypeScript/クラウドの実力が土台にあり、そのうえでDenoも選択肢として出せることが評価の軸になります。関連職種の全体像はバックエンドエンジニアとは?仕事内容や年収、必要なスキルを詳しく解説やマイクロサービスとは|モノリスとの違い・採用判断・案件動向を解説も参考にしてください。
現時点でDenoを推す条件・推さない条件
Denoを選ぶ現実的な条件は次のあたりです。
チームがTypeScriptに完全に振り切っている
権限を最小化したい処理がある(外部入力を扱うバッチ、社内の自動化スクリプト等)
テスト・リンター・フォーマッタの設定を減らし、新規開発の初速を上げたい
一方、Node.jsの資産が積み上がった大規模モノリスや、Node固有APIに強く依存するライブラリを使っている場合、無理にDenoへ寄せる旨みは薄くなります。案件を選ぶ段階で技術スタックをどこまで重視するかは、案件の選び方|フリーランスエンジニアが単価・稼働・スキルで決める優先順位で整理しています。
Denoを経歴に書くと不利にはならない?
不利にはなりにくい一方、「Denoだけ」の経歴だと採用側が案件と結び付けにくくなります。Node.js/TypeScript/クラウドの経験を主軸に置き、Denoは「新しい技術への追従」や「権限設計・ツール選定の経験」の裏付けとして添えるのが扱いやすい書き方です。
Denoの学習ロードマップと詰まりやすいポイント
Node.js/TypeScriptの実務経験がある人なら、2〜4週間程度で一通り動かせるようになるのが目安です。公式チュートリアル、標準ライブラリと権限、Node.js資産の再利用、Deno DeployとFreshでの公開、の4段階で進めると効率的です。JavaScriptに触れて日が浅い場合は、これより時間がかかる前提で計画してください。
ステップ1:インストールと最初の1本
Deno公式サイトの手順でインストールする
deno --version で動作を確認し、Hello Worldを実行する
deno.jsonを作り、lint・fmt・tasksの設定を試す
ステップ2:標準ライブラリと権限
JSR上の@std/httpや@std/fsを使い、最小権限で動くAPIサーバーを1本書く
--allow-net や --allow-read にドメインやディレクトリを指定し、権限を絞れることを体感する
deno test でテストを書き、Deno.test.each でパラメータ化テストも試す
ステップ3:Node.js資産の再利用
npm:接頭辞でExpress・Prisma・Zodなどを読み込む
package.jsonとdeno.jsonの共存を試す
既存Node.jsプロジェクトの一部(1エンドポイント程度)をDenoで書き直す
ステップ4:Deno DeployとFreshで公開
console.deno.comで組織を作り、GitHubリポジトリを接続して自動デプロイを設定する
Freshのサンプルアプリを作り、Deno Deploy上で動かす
Deno KVで簡単な永続化を試す(無料枠のKVストレージは1GiBまで)
詰まりやすいポイント
npmパッケージがNode固有API(child_process等)に依存していて、Denoでは動かない、または追加設定が要る
権限フラグを付け忘れて実行エラーになる(--allow-netの付け忘れが最頻出)
deno runが既定で型検査をしないことを知らず、型エラーに気付かない
2026年7月以前の記事にあるDeno Deployの手順(deployctl、GitHub ActionsのYAML、dash.deno.com)が新版では使えない
Deno KVのキュー機能(Kv.enqueue)を前提にしたサンプルが、新しいDeno Deployでは動かない
v1系の前半に書かれた学習資料は、URL importだけで組まれているなど、v2以降の推奨方式と食い違う箇所があります。サポート対象外の版を前提にした資料は、セキュリティと互換性の両面で見直しが必要です。学習前・参画前には、公式のリリースノートで対象バージョンのサポート状況を確認しておくと安全です。
まとめ
Denoは「TypeScriptを権限付きで、ツール込みで動かせるランタイム」で、Node.jsの代わりではなく、新規開発や社内ツールで選ぶ選択肢です。 2026年10月時点では、Node.js側の追い上げとDeno Deployの刷新で、選ぶ理由はより具体的になりました。
最新は2.9系。LTSも2.9系で、保守期限は2027年1月31日
Node.jsも.tsを既定で実行できるようになった。Denoの差は、変換が必要な構文への対応、型検査、権限モデル、内蔵ツール
Deno Deployは新版に移行し、リージョンは米国・欧州の2つ。旧版前提の手順は使えない
フリコン掲載のTypeScript案件2,492件では、Denoに触れた案件は0件。単価帯は上限70万〜80万円台に約6割が集まる
案件を狙うなら、Node.js/TypeScript/クラウドを主軸に、Denoを選定・提案できる経験として添える
とくに、Node.js/TypeScriptの実務経験があり、新規開発や社内ツールで小さく試せる立場の人に向く技術です。
次の一歩として、公式チュートリアルで小さなAPIを1本立て、--allow-net などの権限運用を試してみてください。Deno Deployの無料枠でGitHub連携デプロイまで進めると、Denoが選ばれる場面を体感で掴めます。単価の目安を先に知りたい方は、フリーランスエンジニアの単価相場と単価の上げ方もあわせて確認してください。
参考リンク(一次情報)
バージョン・サービス仕様は2026年10月8日時点の情報です。変更が速い領域のため、利用前に各公式ページで最新の状況を確認してください。
関連記事
よくある質問
DenoはNode.jsに完全に置き換わりますか?
現時点では置き換わっていません。新規のマイクロサービスやCLIでDenoが選ばれる例はありますが、既存の大規模Node.jsプロジェクトを丸ごと移す動きは限定的です。Node.js側もTypeScriptの型ストリップ実行や標準テストランナーを取り込み、両者の差は縮まっています。
DenoとBunはどちらを学ぶべきですか?
案件の多さで選ぶなら、まずNode.jsです。そのうえで、権限設計やツール一体型の開発体験を重視するならDeno、インストールや起動の速さを重視するならBun、という使い分けが一般的です。どちらもNode.jsの知識がそのまま活きるため、両方を短期間触ってから決めても遠回りにはなりません。
Deno経験だけでフリーランス案件を獲得できますか?
難しいと考えたほうが現実的です。フリコン掲載のTypeScript案件2,492件について一覧のタイトルと概要文を照合した範囲では、Denoに触れた案件は0件でした(2026年10月8日時点・詳細ページの全文は対象外)。Node.js/TypeScript/クラウドの経験を主軸に置き、Denoはその上に乗る経験として示すのが現実的です。
DenoでNode.jsの資産(npmパッケージ)はそのまま使えますか?
多くのパッケージは「npm:」接頭辞でそのまま動きます。ただし、child_processなどNode固有APIに強く依存するパッケージは、完全には動かないケースがあります。移行前に依存ツリー全体を洗い出し、問題になりそうな箇所を見積もっておくと事故を防げます。
TypeScriptに慣れていない状態でDenoから入るのは無謀ですか?
無謀ではありませんが、TypeScriptの型の仕組みで詰まる時間のほうが長くなりがちです。TypeScriptの基礎を一通り押さえてからDenoに触るほうが、結果的に早く進みます。
Denoでのテストは何を使えばいいですか?
本体のdeno testで実務に十分耐えます。2.9系ではパラメータ化テストやスナップショットテストも本体に入りました。Jestの書き方に慣れている場合も、APIの考え方が近いため移行の負担は比較的小さめです。
Deno Deployと他のエッジ基盤(Cloudflare Workers、Vercel)とはどう違いますか?
Deno DeployはDenoランタイムをそのまま動かせる点と、Deno KVを使える点が特徴です。新版の実行リージョンは米国・欧州の2つで、世界中に細かく分散させる設計のCloudflare Workersとは性格が異なります。Cloudflareの特徴はCloudflareとは|CDN・Workersでできること・料金・無料プランを解説を参照してください。
古いDeno Deployの解説記事を参考にしても大丈夫ですか?
2026年7月以前の記事は、そのままでは使えない可能性が高いです。旧版(Deploy Classic)は2026年7月20日で終了と告知され、管理画面・デプロイ方法・リージョン数が変わりました。手順は公式の移行ガイドと新版のドキュメントで確認してください。
業務で使うならDenoのどのバージョンを選べばいいですか?
長く運用するコードなら、LTSの2.9系(v2.9.3以降)が目安です。保守期限は2027年1月31日とされているため、それまでに次の版へ上げる計画を立てておきます。マイナーバージョンは12週間ごとに出るので、検証用と本番用で追従の速さを分けるのも手です。
Denoの案件を探すには何をチェックすればいいですか?
Denoを名指しした募集は少ないため、TypeScriptやNode.jsの案件から探すのが近道です。業務内容に「新規開発」「技術選定から参加」「社内ツール開発」とある案件は、Denoのような選択肢を提案しやすい傾向があります。フリコンではTypeScriptの案件一覧から絞り込めます。
Denoで学んだ知識はNode.jsに転用できますか?
多くはそのまま転用できます。TypeScript、ESM、fetchなどのWeb標準API、テストの書き方、最小権限の考え方は、Node.jsの実務でも活きます。Denoで身に付けた権限の感覚は、Node.jsのコードレビューで依存パッケージの危うさに気付く観点にもなります。
Bunの運営がAnthropicになったことで、選定に影響はありますか?
現時点で、使い方やライセンスが変わったという発表はありません。MITライセンスとGitHubでの公開開発は継続するとされています。長期運用で選ぶ場合は、DenoやNode.jsと同様に、リリースの頻度やサポート方針を定期的に確認しておくと安心です。
