Deno v2.8.2
Deno v2.8.2がリリースされています。
deno compile --bundle
deno compileに--bundleオプションが追加されています (#34527, #34529, #34531, #34532, #34534)
deno bundleと同様の仕組みでエントリーポイントをバンドルしてから実行可能ファイルを作成してくれます。実行可能ファイルのサイズ削減などが目的で導入されたようです。
また、--minifyオプションによるバンドルの最小化も可能です (#34536)。
JSR
deno publish
JSRパッケージ中の各.wasmファイルにおけるインポートセクションに対して、通常のJavaScript/TypeScriptモジュールと同様にImport mapsに基づいてbare specifierを解決してからJSRへ公開されるように挙動が変更されています (#34549)
deno add
JSRパッケージのインストール時に@latestタグの指定がサポートされています (#32859)
$ deno add jsr:@std/fmt@latest
deno task
複数タスクの一括実行に関する改善
実行するタスクのパターンを指定する際に(!a|b|c)形式での指定がサポートされています (#34506)。具体的にはtest:*(!e2e|integration)形式でパターンを指定すると、test:unitタスクは実行されるもののtest:e2e及びtest:integrationタスクは実行がスキップされます。
また、--recursiveや--filterによってワークスペース中の複数のパッケージに対するタスクを一括実行する際に、各パッケージ間でタスクが並列実行されるように挙動が変更されています (#34512)
--env-file
--env-fileオプションがサポートされています (#34508)。.envで定義された環境変数が適用された状態でタスクが実行されます。
deno run
deno runに<folder>/<subpath>形式でエントリーポイントが指定され かつ 対応するnpmパッケージ向けのマッピングがImport mapsによって定義されている ("<folder>": "npm:folder") 場合、 該当npmパッケージが<subpath>エントリーポイントを提供していなければ、./<folder>/<subpath>形式でローカルファイルへフォールバックするよう挙動が変更されています (#32854)
また、deno check以外のdeno runなどのコマンドでcompilerOptions.verbatimModuleSyntaxの設定が認識されるように改善されています (#34495)
deno lsp
入力補完の改善
deno.jsonのimports及び scopesにおけるjsr:/npm:/node: specifier に対する入力補完がサポートされています (#34724)。npmやjsrレジストリへ問い合わせを行った上でパッケージを提案してくれるようです。
それに加えて、npmパッケージのサブパスに対する入力補完 (npm:<package>/<subpath>) がサポートされています (#34675)
テスト実行の改善
Deno.TestContext#step()がヘルパー関数によってラップされているケースにおけるテストの実行がサポートされています (#34648)
パフォーマンス改善
LSPがアイドル状態である場合にGCの実行を指示することで、メモリ使用量の削減を図る改善が実施されています (#34727)
deno jupyter
内部的な変更ではありますが、Jupyterカーネルの実装がJavaScriptによって書き換えられているようです (#34083, #34755)
カーネルプロセスがshutdown_replyを送信した後も生存し続けてしまう問題が修正されています (#34554)
また、jupyter executeが失敗してしまう問題が修正されています (#34483)
DENO_PATCH_REACT_CVE
DENO_PATCH_REACT_CVE環境変数が導入されています (#34676)
本環境変数を設定しておくと、React Server ComponentsにおけるCVE-2025-55182及びCVE-2025-55184向けのパッチが内部的に適用されるようです。
Web API
PerformanceObserver
PerformanceObserver#observe()におけるbufferedオプションがサポートされています (#34748)
Request
Requestにおける以下のプロパティーが実装されています (#34607):
cachecredentialsintegritykeepalivemodereferrerreferrerPolicy
Web Crypto
webcrypto-modern-algos向けに以下のアルゴリズムのサポートが実施されています (#34417, #34447, #34448):
SHAKE128SHAKE256cSHAKE128cSHAKE256TurboSHAKE128TurboSHAKE256ChaCha20-Poly1305ML-KEM-512ML-KEM-768ML-KEM-1024ML-DSA-44ML-DSA-65ML-DSA-87
Node.js互換性の改善
--use-env-proxy
--use-env-proxy及びNODE_USE_ENV_PROXYが追加されています (#34257)。これらが指定されると、node:http(s)がHTTP_PROXYなどの環境変数を認識してくれます。
Conditional exports
module-syncがサポートされています (#34599)
node:module
以下のAPIが実装されています:
node:test/reporters
node:test/reportersモジュールが実装されています (#34595)
node:vm
各種APIのimportModuleDynamicallyコールバックがサポートされています (#34572)
node:child_process
spawn()におけるwindowsHideオプションがサポートされています (#34627)
node:v8
setFlagsFromString()で--expose_gcの設定がサポートされています (#34604)
node:http
DENO_SERVE_ADDRESSがサポートされています (#34662)。listen()の実行時にこの環境変数の設定が適用されます。
freshのOrganization/ドメインの移行と今後の計画について
今までfreshの開発はdenoland Organizationで行われてきましたが、直近でfreshframeworkというOrganizationへ移行されているようです。
この対応に合わせて、Webページのドメインもfresh.deno.devからusefresh.devへ移行されています。
移行の経緯については以下のDiscussionに説明されています:
より多くの人々がコントリビュートしやすくすることが主な目的のようです。
freshの今後の計画についても共有されています。現状、freshではesbuildとViteの2つのビルドツールに対応していますが、今後はViteのみに限定される方針のようです。
また、@preact/signalsとの統合の強化や、Islandのpropsに対する関数のサポートなども検討されているようです。
swcからoxcへの移行について
現時点ではまだマージされていませんが、Denoの内部で使用されているdeno_astにおいてswcからoxcへ移行するPRが作成されています:
以前にもdeno lintコマンドの内部実装をoxlintへ移行する対応の実施が試みられており、それに関連した対応である可能性もありそうです。