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
という名前でパッケージが公開されることが検討されているようです。