Deno v2.3.2 & v2.3.3
Deno v2.3.2とDeno v2.3.3がリリースされています。
deno lint
deno lintプラグインでコメントの取得がサポートされています (#29189)
SourceCodeクラス (RuleContext.sourceCodeからアクセス可能) にgetAllComments()/getCommentsBefore()/getCommentsAfter()/getCommentsInside()メソッドが追加されています。
また、Programにもcommentsプロパティーが追加されています。
deno coverage
deno coverage --htmlで生成されるHTMLレポートで、OS設定に基づいてlightとdarkテーマが切り替わるように改善されています (#29267)
deno jupyter - 複数カーネルの管理がサポート
deno jupyterコマンドで複数のカーネルをインストール・管理するための機能が導入されています (#29249)
--nameオプション
deno jupyterコマンドに--nameオプションが追加されています。
--installオプションとともに--nameオプションが指定されると、カーネルがインストールされる際のディレクトリ名を変更できます (デフォルトはLinuxだと~/.local/share/jupyter/kernels/denoで、--name deno-canaryを指定すると~/.local/share/jupyter/kernels/deno-canaryにインストールされます)
--installが省略された場合、--nameオプションによって指定された名前でkernel.jsonがインストールされているか確認できます。
deno jupyter --install --display <name>
deno jupyter --installに--displayオプションが追加されています。
このオプションを指定することで、kernel.jsonのdisplay_nameをカスタマイズできます (デフォルトはDeno)
deno jupyter --install --force
deno jupyter --installに--forceオプションが追加されています。
このオプションを指定すると、カーネルがすでにインストール済みである際も強制的にカーネルを再インストールしてくれます。
deno check
Ambient moduleに関する挙動の改善
Ambient moduleによって型が定義されたパスに対して発生する型エラーが無視されるよう挙動が変更されています (#29135)
例えば、Ambient moduleによって*.svgに対する型定義が定義されていたら、*.svgに対するimportによって型エラーが起きぬように改善されています。
deno.lock
deno.lockの更新タイミングが型チェックの実行前から実行後へ変更されています (#29265)
型チェックの実行時にはじめて@types/nodeが必要となるケースがあるため挙動が変更されたようです。
また、deno.lockにすでに@types/nodeが書き込まれている場合、@types/node@*が書き込まれないよう改善されています (#29270)
deno fmt
Tagged template内のHTML/CSS/SQLで構文エラーがあった際の挙動の改善
Tagged template内のHTML/CSS/SQLに構文エラーが存在した場合、エラーが発生するよう改善されています (#29259)
fmt.useTabs
fmt.useTabs: trueが設定されている場合、fmt.indentWidthが無視されるよう修正されています (#29205)
deno lsp
deno/taskDefinitions
deno/taskDefinitionsで各タスクのdescriptionが返却されるよう改善されています (#29244)
巨大なファイルの取り扱いの改善
巨大なファイルのフォーマットで時間がかかることがある問題への改善が実施されています (#29162)
また、巨大なJSONファイルがimportされている際のメモリ使用量の改善が実施されています (#29192)
10MB以上のJSONファイルは{}型として取り扱うよう修正されているようです。
診断の改善
deno jupyterにおけるトップレベルのfor awaitへの警告が無効化されています (#29114)
また、型定義が見つからないnpmパッケージに対してno-export-npmが返されないよう修正されています (#29180)
Quickfix
$node_modulesに対するQuickfixが表示されないよう改善されています (#29194)
deno cache
deno cacheコマンドで--env-fileがサポートされています (DENO_AUTH_TOKENSの設定などが想定されている模様です) (#29160)
CLI
DENO_USE_CGROUPS環境変数が導入
Linux向けにDENO_USE_CGROUPSという環境変数が導入されています (#29078)
この環境変数が設定されると、システムのメモリ容量ではなく、cgroupのメモリ制限を考慮して Isolate のヒープ領域が確保されるよう挙動が変更されるようです。
今まで、Denoはシステムの最大メモリ容量を元に Isolate のヒープ領域を設定しており、Dockerなどのようにcgroupによってメモリ使用量が制限されている環境において、OOMによってプロセスが意図せず停止させられてしまうことがあった課題の解消が目的のようです (#29077)
--allow-importのバグ修正
--allow-importに不正な形式の値を指定すると、プロセスがパニックする問題が修正されています (#29118)
DENO_TRUST_PROXY_HEADERS環境変数が導入
DENO_TRUST_PROXY_HEADERSという環境変数が追加されています (#29296)
x-deno-client-addressヘッダーについての詳細についてはわかっていないのですが、この環境変数に1が設定されると、Denoが受け取るHTTPリクエストからx-deno-client-addressヘッダーが削除されるようです。
OpenTelemetry
boot_failure及びuncaught_exceptionイベントが追加
以下のイベントが新しく実装されています (#29287)
| イベント | 送信タイミング |
|---|---|
boot_failure | Denoの起動に失敗したとき |
uncaught_exception | 未捕捉の例外が検出されたとき |
--env-fileのサポート
OTEL_DENOやOTEL_EXPORTER_OTLP_PROTOCOLなどの各種OpenTelemetry関連の環境変数を--env-fileオプション経由で指定できるよう改善されています (#29240)
Workerとの併用
OpenTelemetryが有効化された状態でWorkerを作成するとプロセスがパニックする問題が修正されています (#29248)
Deno.serve()
DENO_SERVE_ADDRESS=duplicate,<address>
DENO_SERVE_ADDRESSでduplicate,<address>という形式がサポートされています (#29109)
Deno.serve()のオプションとして指定されたアドレスに加え、duplicate,の後に指定されたアドレスでもサーバーが起動されるようです:
// main.mjs
Deno.serve({
port: 3000,
hostname: "localhost",
}, req => new Response("OK"));
$ DENO_SERVE_ADDRESS=duplicate,tcp:127.0.0.1:8000 deno run --allow-net main.mjs
$ curl http://localhost:3000
OK
$ curl http://localhost:8000
OK
DENO_UNSTABLE_CONTROL_SOCKに対する通知
Deno.serve()によってサーバーが起動された際に、DENO_UNSTABLE_CONTROL_SOCKが指定された状態で起動されたDenoプロセス (unconfigured jsruntime)が通知を受け取れるよう、該当のソケットへServingという通知を送信する機能が導入されています (#29173, #29184)
Deno.createHttpClient() - UNIXソケットによるプロキシーのサポート
Deno.createHttpClientでproxy.transport: "unix"がサポートされています (#29154)
FFI関連の型定義の改善
FFI関連の型定義において、Uint8ArrayからUint8Array<ArrayBuffer>を使用するように変更されています (#29127)
Deno.Commandのバグ修正
Deno.Commandにsignalオプションが指定され かつ サブプロセスがすぐに終了した場合、該当のAbortSignalがabortされた際にエラーが発生することがある問題が修正されています (#29193)
createImageBitmap()のバグ修正
createImageBitmap()にBlobが与えられた際に、typeプロパティーの値を考慮しないよう修正されています (#28741)
precompiled JSX transform のバグ修正
precompiled JSX transform (compilerOptions.jsx: "precompile")が有効化された際に、props.childrenに与えられた文字列がエスケープされるよう改善されています (#29200)
const thisStringShouldBeEscaped = "...";
<p>{thisStringShouldBeEscaped}</p>
TypeScript
Explicit Resource Managementのネイティブサポート
Deno v2.2.10でJavaScriptに対するExplicit Resource Managementのネイティブサポートが提供されました。
このリリースではTypeScriptコードにおいてもswcによるトランスパイルに依存せずV8によるExplicit Resource Managementのネイティブサポートが利用されるよう改善されています (#29282)
型定義の追加
以下のAPIに対する型定義が追加されています (#29186)
Promise.try()RegExp.escape()Atomics.pause()
Node.js互換性の改善
@types/node
Denoにおいてデフォルトで使用される@types/nodeのバージョンが22.11.0から22.15.14へ更新されています (#28407)
node:dns
lookup()にutil.promisify()を適用した状態でall: trueオプションを設定して呼んだ際に、TypeErrorが発生する問題が修正されています (#29167)
node:process
process.stdout.getColorDepthが実装されています (#29176)
この改善により、create-vueが動作するようです。
また、loadEnvFile()がnamed importで読み込めるように改善されています (#29237))
node:http
ServerResponse.reqが実装されています (#29211)
また、request()でsocketPathオプションがサポートされています (#29182)
node:https
request()及びAgentでkey/cert/caオプションがサポートされています (#28937)
node:tls
Server#unrefがサポートされています (#29279)
connect()でrejectUnauthorizedオプションがサポートされています (#29245)
また、connect()でhostオプションのデフォルト値としてlocalhostが使われるよう修正されています (#29231)
node:test
TestContextのskip()及びtodo()メソッドが実装されています (#29222)
node:assert
CallTrackerが実装されました (#29226)
node:sqlite
WindowsでDatabaseSync#closeを読んでも適切にファイルが閉じられない事がある問題が修正されています (#29210)
node:dgram
以下のAPIが実装されています:
Socket#addMembership/dropMembership(#29207)Socket#setBroadcast(#29195)Socket#setMulticastLoopback(#29241)Socket#setMulticastTTL(#29232)
今回の改善により、multicast-dnsが動作するようです。
node:buffer
Buffer.compare()に不正な入力が与えられた際にTypeErrorではなくERR_INVALID_ARG_TYPEが発生するよう改善されています (#29275)
V8 137
v8 137へのアップデートが実施されています (#29166)
An Update on Fresh
Deno公式ブログでFresh v2に関する記事が公開されています:
Fresh v2において予定されている変更内容やFresh v2のリリースに関連したDeno本体やDeno Deployへの改善 (今後、発表予定とのことですが、Deno Deployにおいてビルドステップに関する改善などが行われているそうです) などについて解説されています。
また、Fresh v2の正式なリリース時期についても言及されており、2025年9月ごろでのリリースが計画されているようです。現在はプラグインシステムやバンドラーとの統合に関する改善などを中心に進められているそうです。
deno_stdのリリース
deno_stdのリリースが実施されています (release-2025.05.13)
@std/collections@1.1.0
@std/collections@1.1.0がリリースされています。
Iterableサポートの安定化
以下のunstableモジュールでサポートされていたIterableサポートが安定化されています (#6644)
@std/collections/unstable-chunk@std/collections/unstable-drop-while@std/collections/unstable-drop-last-while@std/collections/unstable-intersect@std/collections/unstable-sample@std/collections/unstable-sliding-windows@std/collections/unstable-sort-by@std/collections/unstable-take-last-while@std/collections/unstable-take-while@std/collections/unstable-without-all
これらの@std/collections/unstable-*モジュールは現在は削除され、unstable-*プレフィックスがついていない対応するモジュールにマージされています (例: @std/collections/unstable-chunkで提供されていたIterableのサポートは、@std/collections/chunkにマージされています)
@std/collections/unstable-cycleの追加
@std/collections/unstable-cycleという新規モジュールが追加されています (#6386)
@std/async@1.0.13
@std/async@1.0.13がリリースされています。
@std/async/abortable
abortable()にrejectされたPromiseとabort済みのAbortSignalを渡すと、unhandledrejectionが発生する問題が修正されています (#6312)
@std/bytes@1.0.6
@std/bytes@1.0.6がリリースされています。
@std/bytes/concat
concat()にreadonlyな配列を渡せるよう型定義が改善されています (#6639)
@std/data-structures@1.0.8
@std/data-structures@1.0.8がリリースされています。
@std/data-structures/unstable-binary-search-tree
@std/data-structures/unstable-binary-search-treeモジュールが追加されています (#6544)
@std/data-structures/binary-search-treeのBinarySearchTreeクラスが提供する各種メソッドに加え、ceiling()/floor()/higher()/lower()メソッドが提供されます。
@std/dotenv@0.225.4
@std/dotenv@0.225.4がリリースされています。
load()でURLがサポート
load()/loadSync()のenvPathオプションでURLオブジェクトによるパスの指定がサポートされています (#6621)
@std/expect@1.0.16/@std/testing@1.0.12
@std/expect@1.0.16と@std/testing@1.0.12がリリースされています。
expect.hasAssertions()及びexpect.assertions()の改善
expect.hasAssertions()とexpect.assertions()の挙動が改善されています (#6646)
expect.hasAssertions()がit()の中以外から呼ばれた際に、適切にエラーが発生するよう改善されています。
また、expect.hasAssertions()またはexpect.assertions()が失敗した場合、他のテストケースもその影響を受けてしまう問題が修正されています。
@std/http@1.0.16
@std/http@1.0.16がリリースされています。
@std/http@/file-server
ブラウザーのキャッシュが適切に動作するよう、Dateヘッダーに該当のファイルのアクセス日時を設定しないよう修正されています (#6610)
@std/toml@1.0.6
@std/toml@1.0.6がリリースされています。
@std/toml/stringify
stringify()においてJavaScriptのNaNがnanとしてフォーマットされるよう修正されています (#6638)
denoland/setup-deno v2.0.3
DENO_DIRのキャッシュがサポート
ダウンロードされた依存関係などのキャッシュがサポートされています:
- feat: add built-in caching via inputs #89
- feat: include a hash of deno.lock files in the cache key automatically #98
cache: trueオプションによって有効化できます。
また、cache-hashオプションによってキャッシュキーの一部として利用されるハッシュ値をカスタマイズできます。(デフォルトは${{ hashFiles('**/deno.lock') }})
LTSバージョンのサポート
deno-versionでltsを指定すると、DenoのLTSバージョンがダウンロードされます (#97)
Prisma v6.8.0
Prisma v6.8.0がリリースされています。
このリリースではprisma-client-jsからDenoのサポートが削除され、prisma-clientジェネレーターへの移行が行われており、DenoからPrismaを利用する際の設定方法などが変更されているようです。