Deno v2.7.10 & Deno v2.7.11
Deno v2.7.10とDeno v2.7.11がリリースされています。
deno upgrade
deno upgradeコマンドでalphaとbetaチャネルがサポートされています (#33098)
RCバージョンへのアップグレードと同様に、deno upgradeの引数にalphaもしくはbetaを指定することでアップグレードが可能です。
ただし、まだ alpha 及び beta バージョンのリリースは実施されていません。今後、実際にリリースが行われれば、利用できるようになりそうです。
deno compile
deno.jsonにおいてcompile.include及びcompile.excludeフィールドがサポートされています (#33024)
効果はそれぞれ--include及び--excludeオプションと同様です。
deno lsp
Import mapsにおいて以下のようにディレクトリへのマッピングが定義されている状態でdeno lspがimportの補完をする際に、相対パス形式だけでなく@/形式のパスに対する補完候補も表示してくれるように改善されています (#33048)
{
"imports": {
"@/": "./src/"
}
}
Permissoins
Windowsにおいて、--allow-readなどのパーミッションオプションにおけるパスの大文字・小文字を区別せずに取り扱うように挙動が変更されています (#33073)
Node.js互換性の改善
links
deno.jsonのlinksフィールドにおいてまだnpmレジストリに公開されていないnpmパッケージが参照されている場合にエラーが発生してしまう問題が修正されています (#33021)
BYONM
--node-modules-dir=manual (BYONM) が適用されている場合、Node.js組み込みモジュールと同名のパッケージ (例: eventsパッケージ) が読み込めない問題が修正されています (#32865)
node:child_process
spawnSync()の戻り値として返却されるオブジェクトにpidプロパティーが設定されるように改善されています (#33081)
node:crypto
下記の改善が実施されています:
createCipher()/createDecipher()でchacha20-poly1305がサポート (#33084)Verify#verify()への秘密鍵の指定がサポート (#33083)
node:worker_threads
exitイベントがmessageイベントよりも先に発火されてしまうことがある問題が修正されています (#32623)
Denoの最近のアップデートについて
まだリリースはされていませんが、Deno本体でいくつかの大きな変更が実施されています。
推測にはなりますが、先述したようにdeno upgradeにおいて alpha と beta チャネルのサポートが実施されており、そう遠くないタイミングで大きめのリリースが実施される可能性もあるのかもしれません。
グローバルのタイマーAPIがWeb APIではなくNode.jsベースのものへ変更
グローバルのsetTimeout()やsetInterval()などのタイマーAPIをWeb APIではなくNode.js (node:timers) ベースのAPIに置き換える対応が実施されています:
これにより、例えばsetTimeout()を呼ぶと数値ではなくTimeoutオブジェクトが返却されるように挙動が変わります。
テストサニタイザーに関する変更
Deno.test()におけるsanitizeOps及びsanitizeResourcesのデフォルト値がfalseに変更されています:
この変更に合わせて--sanitize-ops及び--sanitize-resourcesオプションが追加されており、deno testコマンドにこれらのオプションを指定することで以前までの挙動に戻すことができるようです。
また、DENO_TEST_SANITIZE_OPS/DENO_TEST_SANITIZE_RESOURCES環境変数も追加されており、これらに1を設定することによっても従来までの挙動に戻せるようです。