Deno v2.3.2 & v2.3.3

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

deno lint

deno lintプラグインでコメントの取得がサポートされています (#29189)

SourceCodeクラス (RuleContext.sourceCodeからアクセス可能) にgetAllComments()/getCommentsBefore()/getCommentsAfter()/getCommentsInside()メソッドが追加されています。

また、Programにもcommentsプロパティーが追加されています。

deno coverage

deno coverage --htmlで生成されるHTMLレポートで、OS設定に基づいてlightdarkテーマが切り替わるように改善されています (#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.jsondisplay_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_failureDenoの起動に失敗したとき
uncaught_exception未捕捉の例外が検出されたとき

--env-fileのサポート

OTEL_DENOOTEL_EXPORTER_OTLP_PROTOCOLなどの各種OpenTelemetry関連の環境変数を--env-fileオプション経由で指定できるよう改善されています (#29240)

Workerとの併用

OpenTelemetryが有効化された状態でWorkerを作成するとプロセスがパニックする問題が修正されています (#29248)

Deno.serve()

DENO_SERVE_ADDRESS=duplicate,<address>

DENO_SERVE_ADDRESSduplicate,<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.createHttpClientproxy.transport: "unix"がサポートされています (#29154)

FFI関連の型定義の改善

FFI関連の型定義において、Uint8ArrayからUint8Array<ArrayBuffer>を使用するように変更されています (#29127)

Deno.Commandのバグ修正

Deno.Commandsignalオプションが指定され かつ サブプロセスがすぐに終了した場合、該当のAbortSignalabortされた際にエラーが発生することがある問題が修正されています (#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)

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()及びAgentkey/cert/caオプションがサポートされています (#28937)

node:tls

Server#unrefがサポートされています (#29279)

connect()rejectUnauthorizedオプションがサポートされています (#29245)

また、connect()hostオプションのデフォルト値としてlocalhostが使われるよう修正されています (#29231)

node:test

TestContextskip()及び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されたPromiseabort済みの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-treeBinarySearchTreeクラスが提供する各種メソッドに加え、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のNaNnanとしてフォーマットされるよう修正されています (#6638)

denoland/setup-deno v2.0.3

DENO_DIRのキャッシュがサポート

ダウンロードされた依存関係などのキャッシュがサポートされています:

cache: trueオプションによって有効化できます。 また、cache-hashオプションによってキャッシュキーの一部として利用されるハッシュ値をカスタマイズできます。(デフォルトは${{ hashFiles('**/deno.lock') }})

LTSバージョンのサポート

deno-versionltsを指定すると、DenoのLTSバージョンがダウンロードされます (#97)

Prisma v6.8.0

Prisma v6.8.0がリリースされています。

このリリースではprisma-client-jsからDenoのサポートが削除され、prisma-clientジェネレーターへの移行が行われており、DenoからPrismaを利用する際の設定方法などが変更されているようです。