Deno v2.5 向けの機能の追加について Deno v2.5 向けに直近でマージされた内容について紹介します (⚠️まだ正式にはリリースされていないため、今後、APIの使い方に変更が発生する可能性があります) Deno.bundle()APIが追加 deno bundleコマンドの機能をプログラムから動的に利用するために、Deno.bundle()というAPIが追加されています。 feat(bundle): runtime API for deno bundle #29949 Deno.bundle()を利用するためには--unstable-bundleによって明示的に有効化が必要です: const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "deno", }); console.assert(result.success); const [outputFile] = result.outputFiles; const bundledCode = outputFile.text(); console.assert(typeof bundledCode === "string"); outputPathやoutputDirオプションを指定することで、バンドル結果がファイルシステムへ書き込まれます (--allow-writeの指定は不要なようです): const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "browser", minify: true, sourcemap: "external", outputDir: "dist", }); console.assert(result.success); まだマージはされていませんが、現在、プラグイン (pluginsオプション) のサポートに関する実装も進められているようです:...
2025/08/25〜2025/08/31の最新情報
Deno v2.5 向けの機能の追加について Deno 2.5.0 向けのマイルストーンに関連して、新機能を実装するためのPRがいくつか作成されているため、紹介します。 Deno.testへのbefore*/after*フックのサポート まだマージはされていませんが、Deno.test配下に Vitest や Jest ライクなbefore*/after*APIをサポートするPRが作成されています: feat(test): Add setup and teardown APIs to Deno.test API #30504 af75749のコミットの時点では、以下の4つのフックが実装されています: Deno.test.beforeAll() Deno.test.afterAll() Deno.test.beforeEach() Deno.test.afterEach() Deno.ChildProcess.{stdout,stderr}へのResponseライクな問い合わせメソッドの追加 Deno.ChildProcessのstdout及びstderrプロパティーにおいて、Responseライクに出力内容を取得するためのユーティティーメソッドを追加するPRが作成されています: feat(ext/process): add collector utilities to ChildProcess.stdout & ChildProcess.stderr #30552 const command = new Deno.Command(Deno.execPath(), { args: ["json_reference"], stdout: "piped", }).spawn(); const json = await command.stdout.json(); 852714eのコミットの時点においては、以下の4つのメソッドが実装されています: arrayBuffer bytes json text Fresh v2 関連のアップデート @fresh/init@2....
2025/08/18〜2025/08/24の最新情報
Deno v2.4.5 Deno v2.4.5がリリースされています。 deno lsp Pull Diagnostics deno lspでPull Diagnosticsが実装されています (#30325) workspace/willRenameFilesの改善 .jsから.tsへのリネームが適切に動作するよう改善されています (#30458) deno install DENO_INSTALL_ARCH環境変数 DENO_INSTALL_ARCH環境変数がサポートされています (#30473) DENO_INSTALL_ARCH=aarch64のように指定することで、deno installによってインストールされる際に取得されるnpmパッケージを変更できます。 出力の改善 インストールされたパッケージ名が表示されるよう出力が改善されています (#30387) ❯ deno install Packages: 9 +++++++++ Resolved: 9, reused: 0, downloaded: 9, added: 9 Dependencies: + jsr:@david/dax 0.41.0 + jsr:@david/which 0.4.1 + jsr:@std/assert 0.221.0 + jsr:@std/bytes 0.221.0 + jsr:@std/fmt 0.221.0 + jsr:@std/fs 0.221.0 + jsr:@std/io 0.221.0 + jsr:@std/path 0.221.0 + jsr:@std/streams 0.221.0 --entrypointの改善 deno.jsonのexcludeで除外されているモジュールが--entrypoint (-e) でエントリーポイントに指定された際に、ダウンロードが実行されない問題が修正されています (#30442)...
2025/08/11〜2025/08/17の最新情報
Deno v2.4.4 Deno v2.4.4がリリースされています。 Web API EventSourceでヘッダーのカスタマイズがサポート EventSourceでheadersオプションがサポートされています (#30278) Deno独自のオプションのようで、リモートリソースへ接続する際に送信されるヘッダーをカスタマイズできます。 Deno KV - 環境変数の追加 Deno KV向けに以下の環境変数がサポートされています (#30320) 環境変数 概要 DENO_KV_DEFAULT_PATH Deno.openKv()にデータベースパスが指定されたなかった際のデフォルトのパスを指定できます DENO_KV_PATH_PREFIX 指定されると、Deno.openKv()に指定されたデータベースパスに、この環境変数の値がプレフィックスとして結合されます deno repl - --jsonオプションが追加 deno replコマンドに--jsonオプションが追加されています (#30307) このオプションが指定されると、Denoがファイルディスクリプター3にパイプを作成し、それを介してJSONメッセージを送信することで、Denoに指定したコードを動的に実行させる仕組みのようです。まず後続のペイロード長をリトルエンディアン形式の32ビット整数として書き込み、その後に { type: "Run", code: "<code>", output: true, }形式のJSONペイロードをパイプに書き込むことで、指定された<code>をDenoが実行し、その結果をパイプ経由で読み込むことができるようです。 deno bundle package.jsonの取り扱いの改善 require()によってパッケージのサブディレクトリを指定した際に、package.jsonの内容が考慮されるよう挙動が改善されています (#30253) また、ESM形式のモジュールからpackage.jsonを持つディレクトリへのimportがサポートされています (#30273) Conditional exports に関する改善 --platform=browserが指定されたら、npmパッケージのbrowserもしくはimport conditionsが解決されるように挙動が変更されています (#30250) deno compile - Deno.build.standaloneに関するバグ修正 deno compileによって生成された実行可能ファイルにおいて、Worker内だとDeno.build.standaloneが未設定になってしまう問題が修正されています (#30335)...
2025/08/04〜2025/08/10の最新情報
deno.jsonでのパーミッションセットの定義について まだDraft状態ですが、deno.jsonでのパーミッションセットの定義をサポートするPRが作成されています。 feat: permissions in the config file #30330 以前に導入が検討されていた頃の仕様と比較して、以下のような変更点がありそうです (まだマージはされていないため、今後、仕様が変わる可能性があります): deno.jsonにおいてパーミッションセットの一覧を定義するためのフィールド名がpermissionSetsからpermissionsに変わっています。 bench/compile/testという名前のパーミッションセットは特別扱いされ、パーミッションセットが省略された状態で-P(--permission-set)オプションが指定された際に、それぞれdeno bench/deno compile/deno testの実行時に自動で適用されるようです (cli/args/mod.rs#L1172-L1188) deno.jsonで複数のパーミッションセットを定義することができます: { "permissions": { "default": { "read": ["data"], "net": true }, "tool": { "read": ["src"], "write": ["generated"] } } } -Pまたは--permission-setによって定義されたパーミッションセットを適用できます: # `default`パーミッションセットを適用 $ deno run -P main.ts # `tool`パーミッションセットを適用 $ deno run --permission-set=tool tools/codegen.ts FreshのViteプラグインが公開 (@fresh/plugin-vite) 直近で開発されていたFreshのViteプラグインが正式にマージされています:...
2025/07/28〜2025/08/03の最新情報
Deno v2.4.3 Deno v2.4.3がリリースされています。 deno bundle - --node-modules-dir=manualのサポート package.jsonが存在する場合など、--node-modules-dir=manualが有効化されている際にdeno bundleでエラーが発生する問題が修正されています (#30200) deno task - --recursiveの挙動の改善 deno taskに--recursive (--filter)オプションが指定された際に、パッケージ間の依存関係に基づいて各タスクの実行順序を調整する改善が実施されています (#30129) また、--recursiveオプションが指定された際に、タスクが実行されたパッケージ名が表示されるように改善されています (#30136) deno check - 存在しないモジュールが検出されないバグの修正 存在しないモジュールへのimportが検出された際にエラーが検出されなくなっていた問題が修正されています (#30181) deno run - --configオプションに関するバグ修正 --configが指定され かつ エントリーポイントが../形式で指定された場合にエラーが発生する問題が修正されています (#30208) deno compile - クロスコンパイル時のnpmパッケージの取り扱いの改善 クロスコンパイルする際に、現在のプラットフォーム向け以外のパッケージが検出された際にエラーが発生する問題が修正されています (#30188) また、node_modulesがある際に、最終的にモジュールグラフ内に含まれないパッケージはコンパイル対象から除外されるように挙動が変更されています (#30189) deno lsp - raw imports に関するサポートの改善 deno lspでraw importsのサポートが改善されています。ファイルのリネームに関する挙動の改善や Go to Definition のサポートなどが実施されているようです (#30142) deno publish - relative-package-importエラーの導入 deno publishコマンドでrelative-package-importエラーが導入されています (#30203)。別のパッケージのファイルを相対パス形式でimportしているパッケージが検出された場合にこのエラーが発生するようです。 node:buffer Buffer#subarrayなどのパフォーマンスが改善されています。これにより、Postgres.js使用時のパフォーマンスが2倍近くまで高速化されているようです (#30213) node:process process._rawDebugが実装されています (#30141)...
2025/07/21〜2025/07/27の最新情報
Deno Deploy EA におけるデータベースのサポートについて Deno Deploy EAアプリケーションからのPostgreSQLへの接続サポートが追加されているようです: Feat: Deploy EA Databases (#1908) Deploy EA changelog for 21 July 2025 (#2384) あらかじめ Deno Deploy のダッシュボードから登録しておいたデータベースを Deno Deploy アプリケーションに割り当てることが出来るようです。 Deno Deploy は本番やプレビューなどの各環境ごとに自動でデータベースを作成し、各環境のアプリケーションに対してPGHOST/PGPORT/PGDATABASEなどの環境変数を自動で割り当ててくれるため、特に設定をせずともnode-postgresなどのパッケージによって適切なデータベースへ接続が出来る仕組みのようです。 現時点ではPostgreSQLのみがサポートされており、今後、MySQLやMongoDB, Redisなどのサポートも検討されているようです (Supported Database Engines) Fresh v2 に関する直近でのアップデート まだFresh v2は正式リリースされたわけではないですが、直近でいくつか大きな変更が実施されているため、紹介します。 Tailwind CSS v4のサポート @fresh/plugin-tailwind@0.0.1-alpha.8がリリースされています。このリリースではTailwind CSS v4がサポートされています (#3054) @fresh/plugin-tailwind-v3というパッケージも追加されており、Tailwind CSS v3についてはこのパッケージからサポートが提供されます (#3135) 公式ミドルウェアの拡充 CORS (#3013) や CSRF (#3018) 向けのミドルウェアがFreshの公式リポジトリに追加されています。これらは@fresh/coreパッケージから提供されています。 ユーザーコードをimportせずにビルドできるようにする変更 今まで、ビルドを実行する際にユーザーコードをimportしていた関係で、一部のケースにおいてFreshのビルドが終了しなくなってしまう問題の修正が行われています (#3122) この変更の影響として、ファイルベースの Route の登録方法が変更されています。ファイルベースの Route を有効化したい場合、fsRoutes()ではなくApp#fsRoutesを実行する必要があるようです。(ファイルベースの Route はBuilderによって処理されるよう挙動が変更されているようです)...
2025/07/14〜2025/07/20の最新情報
Deno v2.4.2 Deno v2.4.2がリリースされています。 deno lsp - tsconfig.jsonのサポート Deno v2.4でdeno checkに導入されたtsconfig.jsonへのサポートがdeno lspに対しても導入されました (#30007) deno check tsconfig.json deno.jsonがcompilerOptionsを持っている場合、tsconfig.jsonよりも優先して参照されるように挙動が変更されています (#30056) また、tsconfig.jsonが検出された際は、tscと同様にnoImplicitOverrideとstrictがデフォルトでfalseとして設定されるように挙動が変更されています (#30045) Side effect import に関するバグ修正 node_modulesディレクトリがある状態で Side effect import が使用されると、ERR_TYPES_NOT_FOUNDエラーが起きてしまう問題が修正されています (#29926) deno bundle - compilerOptions.jsxImportSourceのデフォルト値がreactに設定 compilerOptions.jsxImportSourceが未設定の場合でもJSXファイルを含むコードをバンドルできるよう、compilerOptions.jsxImportSourceのデフォルト値がreactに設定されています (#30082) --unstable-raw-imports - npmパッケージ中のファイルの読み込みがサポート --unstable-raw-importsが指定された場合、npmパッケージ中のファイルに対する文字列もしくはバイト形式によるimportがサポートされています (#30065) シグナルハンドリングの再実装 Denoの内部でシグナルハンドリングに関する再実装が実施されています (#30029) deno_signalsという crate の追加やDeno v2.4.1で Revert されたシグナル受信時にOpenTelemetryシグナルをフラッシュする対応が改めて実施されています。 Node.js互換性に関するバグ修正 globalThis.globalが上書きできない問題が修正されています (#30032) また、node:fsのexists()に不正なパスが渡された場合、エラーとするのではなくfalseを返却するように挙動が修正されています (#29971) @deno/esbuild-plugin@1.1.0 @deno/esbuild-pluginのv1.1.0がリリースされています。 Deno v2.4.0で導入されたテキストまたはバイト形式によるファイルのimportがサポートされています (type: "bytes" & type: "text") Upyo - クロスプラットフォームで動作するメール送信ライブラリ Upyo というメール送信のためのライブラリが公開されています。 リポジトリ: dahlia/upyo JSRパッケージ: jsr:@upyo/core npmパッケージ: npm:@upyo/core Deno/Node....
2025/07/07〜2025/07/13の最新情報
Deno v2.4.1 Deno v2.4.1がリリースされています。 Tunnelling deno runに--connectedオプションが追加されています (#30022)。 おそらくDeno Deploy Early Accessに関連した機能であると思われます。 deno runに--connectedオプションもしくはDENO_CONNECTED環境変数が指定されると、まずDenoは指定されたQUICのエンドポイントへ自動的に接続を開始します。デフォルトではtunnel.global.prod.deno-cluster.net:443へ接続されるようです (deno_tunnelというリポジトリが公開されており、おそらくこれが利用されていると思われます) その後、このDenoプロセス内でDeno.serve()が呼ばれると、Denoは起動時に接続されたQUICコネクションからリクエストを待ち受けるよう挙動が変更されるようです。 QUICエンドポイントへの認証については、deno deploy tunnel-loginコマンドによって取得したトークンを使用して認証が行われるようです (トークンはkeyring-rsを使用して保存されるようです)。また、この際にdeno.jsonのdeployフィールドに設定情報が保存されるようです (org, app) OpenTelemetry vsockトランスポート OTEL_DENO_VSOCK環境変数がサポートされています (#30001) この環境変数にカンマ区切りでCIDとポートを設定しておくと、指定されたvsock向けに Signals が送信されるようです。 Deno v2.3.5での対応のロールバック Deno v2.3.5で実施された、シグナル受信時にバッファリングされていた Signals をフラッシュする対応が Revert されています (#30019) プロセスが意図せず終了しなくなってしまう問題が発生することがあるようで、それを回避することが目的のようです (#29590) deno bundleのバグ修正 deno bundleに関するバグ修正が実施されています: ブラウザー向けのバンドル (--platform browser) がブラウザーでうまく動作しない問題が修正されています (#30023) --minifyが適用された場合にrequire()が適切に動作するよう修正されています (#29997) npmパッケージ中のsloppy importsが適切に解決されるよう改善されています (#29989) deno serve - Import mapsによるエントリーポイントの解決がサポート Deno v2.4でdeno runコマンドに導入されたImport mapsによるエントリーポイントの解決がdeno serveコマンドでも動作するよう改善されています (#29974) --unstable-raw-imports - npmパッケージに関する挙動の変更 npmパッケージ中にtype: "text"もしくはtype: "bytes"形式のimportが検出された場合、--allow-readを要求するように挙動が変更されています (#29990)...
2025/06/30〜2025/07/06の最新情報
Deno v2.4.0 Deno v2.4.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.4 deno_stdのリリース deno_stdのリリースが行われています (release-2025.07.01) @std/text@1.0.15 @std/text@1.0.15がリリースされています。 新規モジュール @std/text/unstable-longest-common-prefixモジュールが追加されています (#6734)。longestCommonPrefix()という配列の中の各文字列から共通する最長の接頭辞を見つけるための関数が提供されます。 また、@std/text/unstable-to-sentence-caseと@std/text/unstable-to-title-caseも追加されています (#6701)。 それぞれtoSentenceCase()とtoTitleCase()を提供します。 @std/text/unstable-dedent - バグ修正 dedent()で空行が意図せず取り除かれてしまう問題が修正されています (#6738) @std/http@1.0.19 - ファイルサーバーのパフォーマンス改善 @std/http@1.0.19がリリースされています。 @std/http/file-server HTMLのレンダリングのパフォーマンスがかなり改善されています (#6727) Aleph.jsのメンテナンスが停止 Aleph.jsのメンテナンスが停止されたようです。リポジトリもアーカイブされています。 今後はFreshへの移行が推奨されています。