Deno v2.0.5
Deno v2.0.5がリリースされています。
Workspaces
メンバーのワイルドカード形式での指定がサポート
ワークスペースのメンバーの指定でワイルドカード形式がサポートされています:
{
"workspace": [
"./packages/*"
]
}
deno add/deno install
package.jsonを更新する際の振る舞いの変更
Deno v2.0.0-rc.2では、package.jsonが存在する状態でdeno add/deno installによってnpmパッケージを追加しようとした場合、deno.jsonではなく常にpackage.jsonが更新されるよう挙動が変更されました。
Deno v2.0.5ではこの挙動が微調整され、deno.jsonとpackage.jsonの両方が検出された場合、package.jsonの配置場所がdeno.jsonよりも現在のパスに近いときだけpackage.jsonにnpmパッケージ(npm:)が追加されるよう変更されています。
deno fmt
YAMLでのdeno-fmt-ignore-fileディレクティブのサポート
# deno-fmt-ignore-fileから始まるYAMLファイルはdeno fmtコマンドによるフォーマット対象から除外されるように挙動が変更されています。
deno coverage
コメントの集計対象からの除外
コメントの行がdeno coverageコマンドによる集計対象から除外されるよう振る舞いが改善されています。
deno lsp
deno.unstable
deno.jsonだけでなく、.vscode/settings.jsonなどのdeno.unstableで指定されたunstable APIがdeno lspによって認識されるよう改善されています。
deno serve
HMRのサポート
deno serveで--watch-hmrオプションがサポートされています。
Deno API
Deno.PermissionOptionsObject
Deno.PermissionOptionsObjectの型定義にimportプロパティが追加されています。
Node.js互換性の改善
.cts形式のサポート
CommonJSサポートが改善され、.cts形式のサポートが追加されています。
また、deno compileで.cjs/.ctsに依存したプログラムの実行可能ファイルの生成もサポートされています。
npm_config_user_agent
deno runまたはdeno taskでnpmパッケージを実行する場合、npm_config_user_agent環境変数が設定されるよう改善されています。
node:module
Next.js v15.0.4向けに、default exportにfindSourceMapが含まれるよう修正されています。
node:fs
readFile()でエラーが発生した際に、Node.jsと同様のフォーマットでエラーが返却されるよう改善されています (Storybook向けの改善のようです)
node:os
userInfo()が再実装され、互換性が改善されています。
Deno v2.0.6
Deno v2.0.6がリリースされています。
deno install
ワークスペースを使用したプロジェクトにおける挙動の改善
ワークスペースを利用したプロジェクトにおいて引数なしでdeno installを実行した際に、各ワークスペースメンバーが依存しているjsrパッケージもまとめてインストールされるよう挙動が改善されています。
Deno.serve
Request.signalのサポート
HTTPリクエストがキャンセルされたら、Deno.serveのハンドラーに渡されたRequestオブジェクトのsignalプロパティがaborted状態に変わるよう改善されています。
- feat(ext/http): abort event when request is cancelled #26781
- feat(ext/http): abort signal when request is cancelled #26761
Web API
performance.timeOrigin
performance.timeOriginにより正確な値が設定されるよう実装が改善されています。
後述するDeno.tracing APIの追加に向けた改善のようです。
deno lsp
BYONMサポートの改善
BYONMが有効化されたプロジェクトにおいても、Auto importが動作するよう改善されています。
Node.js互換性の改善
node:inspector
未実装であったSessionなどの各メソッドやopen()やclose()などのAPIが実装されています。vitest run --coverageコマンドのサポートに向けた対応のようです。
node:zlib
gzip()とgzipSync()の引数としてArrayBufferがサポートされています。
Deno v2.1で導入が検討されている機能について
先週に続いて、Deno v2.1に入ることが検討されていると思われる機能に関していくつかPRやブログ記事が公開されているため、紹介します。
deno update/deno outdated
Denoの公式ブログで以下の記事が公開されています:
この記事では今後、Deno本体に実装予定のdeno updateコマンドやdeno outdatedコマンドについて紹介されています:
deno update- 依存関係をアップデートするためのコマンドと思われますdeno outdated- 依存パッケージの最新バージョンなどを表示してくれるコマンド
deno fmt - SQLファイルのフォーマットのサポート
deno fmtコマンドにSQL(.sqlファイル)のフォーマットをサポートするPRが作成されています:
内部的にはsqlformatが利用されているようです。
有効化するにはdeno.jsonのunstableフィールドに"fmt-sql"を指定するか、--unstable-sqlオプションを指定する必要がありそうです。
Deno.tracing
以前に紹介した@deno/otelパッケージの内部で使用されているDeno.tracing APIを実装するPRが作成されています:
unstable APIとして追加が検討されているようで、有効化するにはdeno.jsonのunstableフィールドに"otel"を指定する必要がありそうです ("unstable": ["otel"])
denoland/kv-utils
以前に紹介した@std/kvについてですが、deno_stdからは独立したパッケージとして公開されることが検討されているようです。
- リポジトリ: denoland/kv-utils
今のところ、@deno/kv-utilsという名前でパッケージが公開されることが検討されているようです。