Deno v2.3.6
Deno v2.3.6がリリースされています。
deno.json - patchからlinksへのリネーム
deno.jsonのpatchがlinksへリネームされています (#29677, #29714)
deno.jsonのpatchは元々、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)
また、以下の改善なども実施されています:
resizableなArrayBufferからのBufferの作成のサポート (#29578)Buffer#fillの互換性の改善 (#29525)- UCS-2のサポートが改善 (#29591, #29593)
node:events
新規APIとしてgetMaxListeners()が実装されています (#29636)
また、EventEmitter#listenerCountでlistener引数がサポートされています (#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
StatementSyncがimportできるよう公開されました (#29563)
また、エラーハンドリングが改善されており、Errorにcodeが設定されるように修正されています (#29404)
node:domain
EventEmitterとの連携がサポートされています (#29632)
node:assert
deepStrictEqual()が空オブジェクト ({})とObject.create(null)を区別するよう改善されています (#29428)
node:zlib
crc32()で桁あふれが起きてしまい、意図せぬ結果が返却されてしまう問題が修正されています(#29546)
node:worker_threads
node:worker_threadsのWorkerからはWorkerGlobalScopeが参照できないよう修正されました (#29543)
OpenTelemetry
ログのtimeUnixNanoフィールドが設定されるよう改善されています (#28625)
vsock
Deno.createHttpClient() - vsockによるプロキシーのサポート
Deno.createHttpClientでproxy.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プラグインが公開されました:
- JSRパッケージ: @deno/esbuild-plugin
- リポジトリ: denoland/deno-esbuild-plugin
esbuild_deno_loaderとの違いとして、@deno/loaderが内部的に利用されています。