Deno v2.1.3

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

deno task

--recursiveオプション

v2.1.0で追加された--recursiveオプションが動作していなかった問題が修正されています (--filter *を指定した場合と同様に動作します)

# ワークスペース内の各パッケージで定義されたtestタスクを実行します
$ deno task --recursive test

(Unix環境向け) 子プロセスへのシグナルの転送がサポート

Unix環境において、deno taskのプロセス向けに送信されたシグナルがタスクで起動された子プロセスへ転送されるよう挙動が改善されています。


(Windows向け) 子プロセスの自動停止

Windowsにおいてdeno taskのプロセスを停止させた際に、deno taskによって起動された子プロセスも停止されるよう改善されています。


タスクの依存関係が定義されている際の引数の取り扱いの変更

deno taskに追加の引数が渡された場合、その引数がルートのタスクにのみ渡されるよう修正されています (dependenciesで指定された子タスクには渡されません)

# 例) a b cはbuildタスクにのみ渡され、dependenciesで指定された子タスクには渡されません
$ deno task build a b c

deno fmt

HTMLファイルのフォーマットの安定性が改善

<script>タグを持つHTMLファイルに対するdeno fmtの安定性が改善されています。


deno install

exportsで複数のエントリーポイントが定義されたjsrパッケージに関する修正

あるjsrパッケージのexportsを確認する際に、deno.lockで指定されたバージョンとは異なるバージョンのdeno.jsonで宣言されたexportsが参照されてしまうことがある問題が修正されています。


deno outdated

--updateが指定されていない場合でも--latestが利用できるように

deno outdated--latestオプションが--updateなしだと指定できない問題が修正されています。


OpenTelemetry

metricsのexport

Deno.telemetry.MetricExporterが追加され、metricsのexportがサポートされています。


Node.js互換性の改善

workspace:~/workspace:^のサポート

npm workspacesにおいて、バージョン制約としてworkspace:~workspace:^の指定がサポートされています。


node:fs

readdir()recursiveオプションがサポートされています。


node:worker_threads

evalオプションが指定された際に意図せずSyntaxErrorが発生することがある問題が修正されています。


Temporal API

Temporal.Duration#toLocaleStringでロケールが考慮されるように改善

内部的にIntl.DurationFormat#formatを使ってフォーマットされるよう改善されています。


その他

dynamic importが多用されたコードにおけるOOMへの対策

dynamic importが多用されている場合、初回の実行時にOOMが発生することがある問題への対策が行われています。


deno_stdのリリース

deno_stdのリリースが行われています (release-2024.12.06)

@std/http@1.0.12

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

@std/http/unstable-route

ハンドラーのinfo引数とparams引数の順番が入れ替わっています (params引数が第2引数へ変更)

info引数よりもparams引数の方が使用頻度が高いと考えられるため、この変更が実施されました。

@std/http/file-server

ファイルサーバーがHEADリクエストを適切に処理するよう改善されています。

@std/dotenv@0.225.3

@std/dotenv@0.225.3がリリースされています。

Windowsサポートの改善

\r\nが含まれた値が適切に解析されていなかった問題が解消されています。

@std/expect@1.0.9

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

expect().toMatchObject()のエラーメッセージの修正

expect().toMatchObject()でエラーが発生した際にexpect().not.toMatchObject()と同じメッセージが表示されてしまう問題が修正されています。

@std/testing@1.0.6

@std/testing@1.0.6がリリースされています。

@std/testing/bdd

test.only()/test.ignore()/test.skip()が実装されています。

@std/text@1.0.9

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

toCamelCase()などの各種APIの内部で、String#toLocaleLowerCaseなどのロケール依存のAPIを使用しないよう修正されています。

deno_lint - JavaScriptプラグインのサポートについて

⚠️ まだ正式に導入されるかどうかはわからないためご注意ください🙏

Denoのリポジトリでdeno lint向けにJavaScriptプラグインをサポートするPRが作成されています:

現時点(54f002f)では、--pluginsオプション もしくは deno.jsonlint.pluginsでプラグインモジュールのパスを指定して利用する想定のようです。

プラグインモジュールからはname及びrulesプロパティーを持つオブジェクトをdefault exportによって提供することで、カスタムのリントルールなどを提供できるようにする想定のようです。

Run your Next.js SSR app on Deno Deploy

@deno/nextjs-startを使って、Deno DeployでNext.jsアプリケーションを動作させる記事がDenoの公式ブログで公開されています: