Deno v2.1.4

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

Node.js互換性の改善

deno install --entrypointの挙動の改善と--unstable-npm-lazy-cachingの導入

今までDenoはnpmパッケージに依存したスクリプトを実行する際に、package.jsonで指定されたパッケージをすべてインストールしていました。

このリリースではdeno install --entrypointの挙動が変更され、指定したエントリポイントから依存されているnpmパッケージのみがキャッシュされるよう改善されています。

他のコマンドでもdeno install --entrypointと同様の振る舞いをさせたい場合は、--unstable-npm-lazy-cachingまたはDENO_UNSTABLE_NPM_LAZY_CACHINGを指定することで有効化できます。


パスに@が含まれるモジュールを提供するパッケージの取り扱いの改善

npmパッケージからファイル名に@が含まれるモジュールをimportしようとするとエラーが発生する問題が修正されています。


node:fs

readFile()でファイルディスクリプターの指定がサポートされています。


node:v8

serialize()deserialize()Float16Arrayがサポートされています。


_http_common

@mswjs/interceptorsなどのNode.jsの内部パッケージである_http_commonに依存しているパッケージでエラーが発生する問題が修正されています。


deno task

(Windows) v2.1.3に関する修正

Deno v2.1.3からdeno taskから実行された子プロセスでSIGINTが受信できなくなっていた問題が修正されています。


deno lsp

@deno-typesから@ts-typesへの移行

Code Actionなどにおいて@deno-typesではなく@ts-typesが使用されるよう修正されています。


OpenTelemetry

OTEL_EXPORTER_OTLP_PROTOCOLの指定が任意に変更

--unstable-otelによってシグナルの送信が有効化された際に、OTEL_EXPORTER_OTLP_PROTOCOLが未定義だとプロセスがパニックする問題が修正されています。


fetch()

Windowsにおけるfile:URLの取り扱いの改善

Windowsにおいてfetch()の引数に不正な形式のfile:URLを指定するとプロセスがパニックする問題が修正されています。


deno_lint v0.69.0

deno_lint v0.69.0がリリースされています。

以前に紹介したJSX関連のLintルールに加えて、rules-of-hooksルールの実装が追加されています。Deno本体に搭載されているdeno_lintがアップデートされれば、これらのJSX関連のルールが利用できるようになりそうです。

Deno本体でのnode:sqliteのサポートについて

Deno本体にnode:sqliteを実装するPRが作成されています:

まだ正式に導入されるかどうかはわかりませんが、もしかしたらDeno v2.2.0あたりでリリースされる可能性もあるかもしれません。

Denoのファイルシステム関連APIの@std/fsへの移植について

@std/fsをNode.jsで動作させるために、Deno.FsFileなどのファイルシステム関連のAPIを@std/fsへ移植することが検討されているようです:

まだマージはされていないですが、早速、Deno.statに関する移植が進められているようです:

UnstorageでのDeno KVドライバーの実装について

まだリリースはされていないですが、UnstorageにDeno KVドライバーを実装するPRがマージされています: