Deno 2.9 正式發布:桌面應用、效能飛躍與後量子密碼學
deno.com · 2026-06-25
Deno 團隊於 2026-06-25 發布 v2.9.0,帶來實驗性桌面應用建構工具、大幅降低的啟動延遲,以及 NIST 後量子加密演算法支援。此版本同時強化 Node.js 26.3.0 相容性,並讓從 npm/pnpm/yarn/Bun 的遷移流程更加順暢。
核心改動
deno desktop 指令(實驗性)可將現有 Web 框架專案打包為原生桌面應用,支援 macOS、Windows 及 Linux 單一可執行檔。後端可選原生 WebView 或內嵌 Chromium(CEF),並自動偵測 Next.js、Astro、Fresh、SvelteKit 等主流框架。
效能方面,冷啟動時間由 34.2ms 降至 17.3ms(約快 2 倍),記憶體用量從 142MB 縮至 64MB,主因來自 V8 模組程式碼快取與精簡化快照。Deno.serve 的 realworld 吞吐量提升至 72.4k req/s。
Web Cryptography 新增 NIST FIPS 後量子演算法,包含 ML-KEM 金鑰封裝(512/768/1024)、ML-DSA 簽章及 SLH-DSA,另有 SHA-3 家族、ChaCha20-Poly1305、Argon2,以及新的 SubtleCrypto.supports() 特性偵測方法。
const kp = await crypto.subtle.generateKey(
{ name: "ML-KEM-768" }, true,
["encapsulateBits", "decapsulateBits"]
);
const { ciphertext, sharedKey } =
await crypto.subtle.encapsulateBits(
{ name: "ML-KEM-768" }, kp.publicKey
);影響範圍
測試工具新增 Deno.test.each() 參數化測試、--changed 僅跑受影響案例、--shard 分片執行,以及覆蓋率門檻設定。依賴管理新增 deno link/unlink、deno list 指令,並可直接讀取既有 package-lock.json、pnpm-lock.yaml、bun.lock 鎖定檔。
deno fmt新增 HTML/XML/SVG、CSS/SCSS/Less、SQL 格式化支援- 供應鏈安全:預設啟用 24 小時 min-release-age,阻擋剛發布的 npm 套件版本
- Web Locks API(
navigator.locks)正式實作 deno compile --bundle實驗性樹搖,大幅縮減二進位大小deno watch作為deno run --watch-hmr的短別名
可自訂 Select 的黃金法則:Safari 27 原生支援即將到來
WebKit Blog · 2026-06-15
WebKit 團隊於 2026-06-15 發文說明即將在 Safari 27 正式落地的可自訂 <select> 元件規範,並提出一條開發者必須遵守的核心原則:永遠為 <option> 元素提供文字內容或無障礙文字屬性。違反此規則將同時損害一般使用者體驗、輔助技術相容性,以及在不支援瀏覽器上的降級行為。
核心改動
開發者只需在 CSS 加上 appearance: base-select 即可啟用完整樣式控制,包含自訂箭頭、圖示、色票及選項版面,無需任何 JavaScript 函式庫或額外 DOM 元素。鍵盤導覽與無障礙語義由瀏覽器原生保留,舊版瀏覽器則自動降級為平台預設 <select> 樣式。
/* 啟用可自訂模式 */
@supports (appearance: base-select) {
select { appearance: base-select; }
}
在 <option> 內擺放圖示時,文字標籤必須同時存在,裝飾性圖片使用 alt="",輔助技術所需文字可用 .visually-hidden 隱藏於視覺層但保留於無障礙樹。
<option>
<img src="bird.svg" alt="">
<span>Wildlife</span>
</option>影響範圍
此功能讓前端開發者得以淘汰長期依賴的自製下拉選單元件,減少對 JavaScript 替代方案的依賴,並獲得瀏覽器原生的鍵盤操作與螢幕閱讀器支援。特性偵測方式為 @supports (appearance: base-select),可安全漸進增強。