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.jsonpackage.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 exportfindSourceMapが含まれるよう修正されています。


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状態に変わるよう改善されています。


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.jsonunstableフィールドに"fmt-sql"を指定するか、--unstable-sqlオプションを指定する必要がありそうです。

Deno.tracing

以前に紹介した@deno/otelパッケージの内部で使用されているDeno.tracing APIを実装するPRが作成されています:

unstable APIとして追加が検討されているようで、有効化するにはdeno.jsonunstableフィールドに"otel"を指定する必要がありそうです ("unstable": ["otel"])

denoland/kv-utils

以前に紹介した@std/kvについてですが、deno_stdからは独立したパッケージとして公開されることが検討されているようです。

今のところ、@deno/kv-utilsという名前でパッケージが公開されることが検討されているようです。