Deno v2.3.6
Deno v2.3.6がリリースされています。
deno.json
- patch
からlinks
へのリネーム
deno.json
のpatch
がlinks
へリネームされています (#29677, #29714)
deno.json
のpatch
は元々、JSRパッケージやnpmパッケージにパッチを適用するために導入された機能で、今回のlinks
へのリネームに伴い、特に利用法などに変更はないようです。
patch
についてはまだサポートされているようですが、将来的に削除される予定のようです。
esbuildベースのdeno bundle
コマンド
esbuildをベースにdeno bundle
コマンドが再実装されました (#29470, #29706, #29651, #29683, #29680)
$ cat main.js
import pc from "npm:picocolors@1.1.1";
console.info(pc.green("foo"));
$ deno bundle --output bundle.js main.js
⚠️ deno bundle is experimental and subject to changes
bundled in 28ms
$ deno run --allow-env bundle.js
foo
今後、Freshとの統合も検討されているようです:
deno deploy
以前に紹介したdeno deploy
サブコマンドがリリースされています。Deno Deploy Early Accessに関連した変更だと思われます。
利用するためにはDENO_DEPLOY_SUBCOMMAND
環境変数によって明示的に有効化する必要があるようです。
$ DENO_DEPLOY_SUBCOMMAND=1 deno deploy --help
Usage: deno deploy [OPTIONS] [args]...
...
deno install
- 安定性の改善
deno install
を複数回実行しないと、すべてのパッケージのインストールに成功しない事がある問題が修正されています (#29679)
deno test --doc
- Deno.test()
のサポート
deno test --doc
においてDeno.test
を含むスニペットがきちんと処理されるように改善されています(#29631)
deno coverage
- data:
URLのサポート
data:
形式のURLからモジュールがimport
されていると、deno coverage
が失敗する問題が修正されています (#29607)
deno fmt
- 構文エラー発生時の挙動の改善
構文エラーの発生時に行が0
ではなく1
始まりで報告されるよう改善されています (#29698)
Node.js互換性の改善
--unstable-node-conditions
オプションが追加
--unstable-node-conditions
オプションが実装されています (#29586, #29640)
これはNode.jsの--conditions
に相当するオプションで、例えば、react-server
conditionを有効化したい場合などに利用できます:
$ deno run --unstable-node-conditions react-server -A main.mjs
node:child_process
Windows+Playwright向けのサポートの改善
Windowにおいてspawn()
のdetached
オプションやstdio
オプションにおける追加のfdの指定, ChildProcess#kill(0)
などがサポートされています (#29609)
この改善によってWindowsでPlaywrightが動作するようです。
Node.jsのCLIオプションの取り扱いが改善
サブプロセスとしてDenoを実行する際に、--pending-deprecation
や--no-warnings
などのNode.jsのオプションが渡されていた場合、それらがサブプロセスのNODE_OPTIONS
環境変数に設定されるよう改善されています (#29600)
また、サブプロセスとしてDenoを実行する際に、Node.jsの-pオプションがサポートされています (#29611)
node:buffer
Buffer.from(string)
において、あらかじめ割り当てられたプールからBuffer
を作成するよう改善されています (#29592)
また、以下の改善なども実施されています:
resizable
なArrayBuffer
からのBuffer
の作成のサポート (#29578)Buffer#fill
の互換性の改善 (#29525)- UCS-2のサポートが改善 (#29591, #29593)
node:events
新規APIとしてgetMaxListeners()
が実装されています (#29636)
また、EventEmitter#listenerCount
でlistener
引数がサポートされています (#29664)
その他にも、on()
においてsignal
オプションの取り扱いの改善 (#29682) や addAbortListener()
の互換性の改善 (#29634)なども実施されています。
node:fs
watchFile()
でデフォルトで5秒ごとにファイルの変更が通知されていた問題が修正されています (#29659)
node:process
process.emitWarning()
による警告が標準エラー出力に出力されるよう改善されています (#29527)
NODE_OPTIONS
で--no-warnings
が指定されていた場合、警告が無効化されます。
node:perf_hooks
markResourceTiming
が再追加されています (#29562)
Deno v2.3.4におけるglobalThis.performance
の取り扱いの変更にともなって意図せず削除されてしまっていたようです。
node:sqlite
StatementSync
がimport
できるよう公開されました (#29563)
また、エラーハンドリングが改善されており、Error
にcode
が設定されるように修正されています (#29404)
node:domain
EventEmitter
との連携がサポートされています (#29632)
node:assert
deepStrictEqual()
が空オブジェクト ({}
)とObject.create(null)
を区別するよう改善されています (#29428)
node:zlib
crc32()
で桁あふれが起きてしまい、意図せぬ結果が返却されてしまう問題が修正されています(#29546)
node:worker_threads
node:worker_threads
のWorker
からはWorkerGlobalScope
が参照できないよう修正されました (#29543)
OpenTelemetry
ログのtimeUnixNano
フィールドが設定されるよう改善されています (#28625)
vsock
Deno.createHttpClient()
- vsockによるプロキシーのサポート
Deno.createHttpClient
でproxy.transport: "vsock"
オプションがサポートされています (#29692)
WebSocketサポート
Deno.serve()
でvsockが有効化されている場合、Deno.upgradeWebSocket()
を呼んだ際にプロセスがパニックする問題が修正されています (#29518)
パフォーマンス改善
Deno.Command
による子プロセスの生成が最適化されています (#29573)
一部ケースにおいては18倍近くまで高速化されているようです。
deno_std
のリリース
deno_std
のリリースが実施されています (release-2025.06.12)
@std/streams@1.0.10
@std/streams@1.0.10がリリースされています。
@std/streams/unstable-abort-stream
が追加
@std/streams/unstable-abort-stream
という新規モジュールが追加されています (#6708)
このモジュールではAbortStream
というTransformStream
が提供されており、pipeThrough
によって接続された両側のストリームをAbortSignal
によってエラーにするよう制御できます。
@std/http@1.0.18
@std/http@1.0.18がリリースされています。
@std/http/unstable-file-server
が追加
新規モジュールとして@std/http/unstable-file-server
が追加されています (#6231)
@std/http/file-server
との違いはserveDir()
においてcleanUrls
オプションがサポートされている点で、このオプションにtrue
を設定すると、.html
なしでHTMLファイルが配信されます。
@std/uuid@1.0.9
@std/uuid@1.0.9がリリースされています。
@std/uuid/common
validate()
においてUUIDv7がサポートされています (#6709)
@std/toml@1.0.8
@std/toml@1.0.8がリリースされています。
parse()
のバグ修正
日付の解析時に2/30などの不正な日付がエラーとして扱われるよう改善されています (#6704)
また、先頭が0
から始まる不正な形式の浮動小数がエラーとして取り扱われるよう改善されています (#6703)
@deno/esbuild-plugin
Deno公式でesbuildプラグインが公開されました:
- JSRパッケージ: @deno/esbuild-plugin
- リポジトリ: denoland/deno-esbuild-plugin
esbuild_deno_loaderとの違いとして、@deno/loaderが内部的に利用されています。