Deno v2.3.6

Deno v2.3.6がリリースされています。

deno.json - patchからlinksへのリネーム

deno.jsonpatchlinksへリネームされています (#29677, #29714)

deno.jsonpatchは元々、JSRパッケージnpmパッケージにパッチを適用するために導入された機能で、今回のlinksへのリネームに伴い、特に利用法などに変更はないようです。

patchについてはまだサポートされているようですが、将来的に削除される予定のようです。

esbuildベースのdeno bundleコマンド

esbuildをベースにdeno bundleコマンドが再実装されました (#29470, #29706, #29651, #29683, #29680)

$ cat main.js
import pc from "npm:picocolors@1.1.1";
console.info(pc.green("foo"));

$ deno bundle --output bundle.js main.js
⚠️ deno bundle is experimental and subject to changes
bundled in 28ms

$ deno run --allow-env bundle.js
foo

今後、Freshとの統合も検討されているようです:

deno deploy

以前に紹介したdeno deployサブコマンドがリリースされています。Deno Deploy Early Accessに関連した変更だと思われます。

利用するためにはDENO_DEPLOY_SUBCOMMAND環境変数によって明示的に有効化する必要があるようです。

$ DENO_DEPLOY_SUBCOMMAND=1 deno deploy --help
Usage: deno deploy [OPTIONS] [args]...

  ...

deno install - 安定性の改善

deno installを複数回実行しないと、すべてのパッケージのインストールに成功しない事がある問題が修正されています (#29679)

deno test --doc - Deno.test()のサポート

deno test --docにおいてDeno.testを含むスニペットがきちんと処理されるように改善されています(#29631)

deno coverage - data:URLのサポート

data:形式のURLからモジュールがimportされていると、deno coverageが失敗する問題が修正されています (#29607)

deno fmt - 構文エラー発生時の挙動の改善

構文エラーの発生時に行が0ではなく1始まりで報告されるよう改善されています (#29698)

Node.js互換性の改善

--unstable-node-conditionsオプションが追加

--unstable-node-conditionsオプションが実装されています (#29586, #29640)

これはNode.jsの--conditionsに相当するオプションで、例えば、react-server conditionを有効化したい場合などに利用できます:

$ deno run --unstable-node-conditions react-server -A main.mjs

node:child_process

Windows+Playwright向けのサポートの改善

Windowにおいてspawn()detachedオプションやstdioオプションにおける追加のfdの指定, ChildProcess#kill(0)などがサポートされています (#29609)

この改善によってWindowsでPlaywrightが動作するようです。

Node.jsのCLIオプションの取り扱いが改善

サブプロセスとしてDenoを実行する際に、--pending-deprecation--no-warningsなどのNode.jsのオプションが渡されていた場合、それらがサブプロセスのNODE_OPTIONS環境変数に設定されるよう改善されています (#29600)

また、サブプロセスとしてDenoを実行する際に、Node.jsの-pオプションがサポートされています (#29611)

node:buffer

Buffer.from(string)において、あらかじめ割り当てられたプールからBufferを作成するよう改善されています (#29592)

また、以下の改善なども実施されています:

  • resizableArrayBufferからのBufferの作成のサポート (#29578)
  • Buffer#fillの互換性の改善 (#29525)
  • UCS-2のサポートが改善 (#29591, #29593)

node:events

新規APIとしてgetMaxListeners()が実装されています (#29636)

また、EventEmitter#listenerCountlistener引数がサポートされています (#29664)

その他にも、on()においてsignalオプションの取り扱いの改善 (#29682) や addAbortListener()の互換性の改善 (#29634)なども実施されています。

node:fs

watchFile()でデフォルトで5秒ごとにファイルの変更が通知されていた問題が修正されています (#29659)

node:process

process.emitWarning()による警告が標準エラー出力に出力されるよう改善されています (#29527)

NODE_OPTIONS--no-warningsが指定されていた場合、警告が無効化されます。

node:perf_hooks

markResourceTimingが再追加されています (#29562)

Deno v2.3.4におけるglobalThis.performanceの取り扱いの変更にともなって意図せず削除されてしまっていたようです。

node:sqlite

StatementSyncimportできるよう公開されました (#29563)

また、エラーハンドリングが改善されており、Errorcodeが設定されるように修正されています (#29404)

node:domain

EventEmitterとの連携がサポートされています (#29632)

node:assert

deepStrictEqual()が空オブジェクト ({})とObject.create(null)を区別するよう改善されています (#29428)

node:zlib

crc32()で桁あふれが起きてしまい、意図せぬ結果が返却されてしまう問題が修正されています(#29546)

node:worker_threads

node:worker_threadsWorkerからはWorkerGlobalScopeが参照できないよう修正されました (#29543)

OpenTelemetry

ログのtimeUnixNanoフィールドが設定されるよう改善されています (#28625)

vsock

Deno.createHttpClient() - vsockによるプロキシーのサポート

Deno.createHttpClientproxy.transport: "vsock"オプションがサポートされています (#29692)

WebSocketサポート

Deno.serve()でvsockが有効化されている場合、Deno.upgradeWebSocket()を呼んだ際にプロセスがパニックする問題が修正されています (#29518)

パフォーマンス改善

Deno.Commandによる子プロセスの生成が最適化されています (#29573)

一部ケースにおいては18倍近くまで高速化されているようです。

deno_stdのリリース

deno_stdのリリースが実施されています (release-2025.06.12)

@std/streams@1.0.10

@std/streams@1.0.10がリリースされています。

@std/streams/unstable-abort-streamが追加

@std/streams/unstable-abort-streamという新規モジュールが追加されています (#6708)

このモジュールではAbortStreamというTransformStreamが提供されており、pipeThroughによって接続された両側のストリームをAbortSignalによってエラーにするよう制御できます。

@std/http@1.0.18

@std/http@1.0.18がリリースされています。

@std/http/unstable-file-serverが追加

新規モジュールとして@std/http/unstable-file-serverが追加されています (#6231)

@std/http/file-serverとの違いはserveDir()においてcleanUrlsオプションがサポートされている点で、このオプションにtrueを設定すると、.htmlなしでHTMLファイルが配信されます。

@std/uuid@1.0.9

@std/uuid@1.0.9がリリースされています。

@std/uuid/common

validate()においてUUIDv7がサポートされています (#6709)

@std/toml@1.0.8

@std/toml@1.0.8がリリースされています。

parse()のバグ修正

日付の解析時に2/30などの不正な日付がエラーとして扱われるよう改善されています (#6704)

また、先頭が0から始まる不正な形式の浮動小数がエラーとして取り扱われるよう改善されています (#6703)

@deno/esbuild-plugin

Deno公式でesbuildプラグインが公開されました:

esbuild_deno_loaderとの違いとして、@deno/loaderが内部的に利用されています。