Deno 1.38已由開發團隊更新釋出,這個新版對deno doc指令進行改進,讓開發者可以快速生成靜態網站,同時新增熱模組替換功能,而JSX轉換速度在這個版本提升達7到20倍,另外,Deno 1.38嘗試以破壞性更新提高對Node.js專案的支援度,官方現在正尋求社群意見。

在最新版本中,Deno強化了deno doc指令,官方提到,他們參考自Rust程式語言文件生成工具rustdoc。讓開發者可以使用deno doc —html指令,替專案生成靜態文件檔案,使開發團隊共享文件更為便捷。這個指令會替函式庫中每個匯出符號(Symbol)創建專屬頁面,並提供客戶端符號搜尋功能,以尋找特定的函式、變數和類型定義。這個功能即便在瀏覽器JavaScript被禁用的情況下,仍然可以正常運作。

另外,deno doc現在支援多個入口點,讓文件生成不會再僅限於單一模組,也就是說,deno doc能夠接收多個模組檔案作為參數,並且替每一個模組生成文件,這項新功能使開發者能夠一次替多個相關聯的檔案生成整套的API文件,而非只能針對單個檔案進行處理。而且新加入的—lint旗標,還可以在生成文件的時候檢查潛在問題,把關文件的品質。

Deno 1.38也引入了熱模組替換(Hot Module Replacement,HMR)功能,這是一個JavaScript開發功能,讓開發者可以在不刷新整個頁面,或是重新啟動應用程式的情況下,更新和替換應用程式的模組,進而提升開發流程效率,開發者現在可以使用deno run —unstable-hmr指令來使用該功能。

官方解釋,—hmr旗標的運作方式就如同—watch,只是熱模組替換會嘗試更新檔案,而不是重新啟動整個程式。這項功能在許多框架會非常有用,像是當Deno同時用於後端和前端開發時,可通知瀏覽器檔案已經更改,並重新載入頁面,而且開發者也可以透過監聽熱模組替換事件,來處理相對應的更新操作。

Deno推出新的JSX轉換功能,以最佳化伺服器端渲染效能。在轉換過程中,JSX語法會在編譯階段,被轉換成JavaScript程式碼,一般來說,因為JSX轉換過程會生成大量且生命周期短暫的物件,因此非常仰賴垃圾回收器。

而新的JSX轉換機制,會在編譯時將JSX模板中的HTML部分序列化成靜態字串陣列,以避免創建大量短暫的物件,減少對垃圾回收器的依賴,還顯著降低頻繁創建和銷毀物件所產生的效能負擔,官方提到,這種方式讓渲染速度變得非常快。在測試中,可以觀察到渲染速度提升7到20倍,垃圾回收時間減少50%。

在此次更新中,Deno還進一步強化對Node.js專案的相容性,提供一個實驗性功能讓開發者可以在Deno環境中使用他們所選擇的Npm套件管理器,也就是說,開發者可以直接在Deno環境安裝和執行Npm套件,且不需要進行額外設定。未來Deno可能會在偵測到專案存在package.json檔案時,預設啟用這項新行為。不過這將是一個破壞性變更,目前Deno團隊正在徵求社群的意見。

熱門新聞

Advertisement