Node.js 13正式發布,這個版本更新了V8引擎,並且也預設完整支援Unicode國際元件(International Components for Unicode,ICU),還更改了平臺最低需求。而Node.js 12現在跟第10和第8版一樣,都成為長期支援版本,但是Node.js 8因為OpenSSL 1.02產品壽命結束的關係,即將在12月的時候停止支援,官方提到,Node.js 13不會成為長期支援版本,因此建議不要在正式產品環境中使用。

Node.js 13更新JavaScript引擎V8到7.8版本,以提升效能表現,並確保Node.js持續緊跟最新的技術發展。V8 7.8最主要的改進,在於透過預載入腳本串流,來提升JavaScript的效能,過去腳本串流會在解析HTML時,碰到<script>標籤之後開始,引擎會暫停解析工作,直到腳本編譯完成,或是腳本編譯且執行完成後,才會繼續解析HTML,也因為編譯的工作是在遇到<script>標籤後才開始,因此與實際執行腳本間存在一大段空閒時間,而這期間無法繼續載入頁面。

但其實在更早的階段,V8便會掃描HTML尋找需要預先載入的資源,因此新版V8會預先載入腳本,並在載入完腳本後,隨即開始進行編譯,而更佳的情況是,在腳本完全載入之前,就開始進行編譯(下圖),這將有效降低可察覺的編譯時間。另外,Node.js也因更新V8版本,所以支援多個新的C++功能,並獲取新編譯器帶來的最佳化以及安全強化。

對於國際化的支援,Node.js一直是使用Unicode國際元件,幫助開發人員撰寫支援多種語言和地區用戶的程式碼,但在之前,Node.js都只預設啟用英語設定,而這代表對於非英語部署來說,需要採取更多的額外步驟來進行在地化,從Node.js 13開始,將預設為full-icuis,因此數百種語言環境將可開箱即用,能簡化非英語應用程式的部署與開發。

現在Node.js能夠更好地支援多執行緒工作,Worker Threads現在於Node.js 13已經是穩定版本,而且也向後移植到了Node.js 12上,官方提到,雖然Node.js的單執行緒事件迴圈運作良好,但是在不少使用案例,還是需要額外的執行緒,才能獲得更好的結果,現在開發者可以開始嘗試在適合的案例上,使用Worker Threads。

在平臺最低需求上,Node.js 13版本程式碼庫,要求OS X開發工具至少要達到版本10,AIX作業系統版本則需要7.2。此外,新版Node.js的Python 3建置體驗也有改進,現在於同時安裝Python 2和Python 3的系統,會優先使用Python 2進行建置,只有在僅安裝Python 3的系統,可以使用Python 3進行建置。

熱門新聞

Advertisement