自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Node.js 開始反擊了,看看 Node.js 近來都引入了哪些實(shí)用功能!

開發(fā) 前端
近來 Node.js 已經(jīng)在很努力的更新了,相信未來越來越多更現(xiàn)代化的功能被 Node.js 支持。與此同時,Bun 和 Deno 也在迅猛崛起。

2018 年,Node.js 之父 Ryan Dahl 推出了全新的 JavaScript 運(yùn)行時 Deno,旨在解決Node.js中一些長期存在的問題,同時提供增強(qiáng)的安全性和現(xiàn)代語言特性。到了2022年,另一個名為 Bun 的 JavaScript 運(yùn)行時橫空出世,在開發(fā)社區(qū)內(nèi)引發(fā)了廣泛討論。

這兩個新興的運(yùn)行時之所以受到如此多的關(guān)注,很大程度上反映了開發(fā)者們對Node.js現(xiàn)狀的不滿以及對新解決方案的渴望,然而,盡管它們帶來了許多創(chuàng)新和改進(jìn),但由于歷史原因以及 Node.js 龐大的生態(tài)系統(tǒng)構(gòu)建等因素,許多開發(fā)者仍然持觀望態(tài)度。

面對這些新興競爭者的挑戰(zhàn),Node.js 似乎感受到了前所未有的危機(jī)感,開始反擊,推出了一系列實(shí)用功能,解決了許多痛點(diǎn)問題。下面就來看看 Node.js 近來都引入了哪些實(shí)用功能!

Node.js v20.0

  • 權(quán)限模型(實(shí)驗(yàn)性功能):Node.js 20 引入了權(quán)限模型,它允許開發(fā)者在程序執(zhí)行期間限制對特定資源的訪問,例如文件系統(tǒng)操作、子進(jìn)程生成和工作線程創(chuàng)建。
  • 原生測試運(yùn)行器:Node.js 20 中,test_runner模塊被標(biāo)記為穩(wěn)定,這意味著它已經(jīng)準(zhǔn)備好用于生產(chǎn)環(huán)境。穩(wěn)定的測試運(yùn)行器包括編寫和運(yùn)行測試所需的基本組件,如describe、it/test和鉤子來構(gòu)建測試文件、模擬、監(jiān)視模式以及node --test用于并行運(yùn)行多個測試文件。

Node.js v20.6

  • 原生支持 .env 文件:引入了對.env文件的原生支持,允許開發(fā)者直接在Node.js中使用.env文件配置環(huán)境變量,無需依賴第三方模塊(如dotenv)。

Node.js v21.0

  • 內(nèi)置 WebSocket 客戶端(實(shí)驗(yàn)性功能): Node.js v21.0提供了一個實(shí)驗(yàn)性的、與瀏覽器兼容的WebSocket實(shí)現(xiàn)。開發(fā)者可以通過標(biāo)志(--experimental-websocket)啟用該功能,從而更方便地在Node.js環(huán)境中使用WebSocket。
  • 自由切換默認(rèn)模塊系統(tǒng)(實(shí)驗(yàn)性功能): 引入了一個新的實(shí)驗(yàn)性標(biāo)志(--experimental-default-type),用于切換Node.js使用的默認(rèn)模塊系統(tǒng)。這一功能允許開發(fā)者在ES模塊和CommonJS之間靈活切換,以滿足不同的項(xiàng)目需求。

Node.js v21.7

  • 內(nèi)置彩色文本輸出: 支持通過console.log間接輸出彩色文本,無需再引入第三方庫(如 chalk),可以通過util.styleText函數(shù)來設(shè)置文本的顏色和樣式。
  • 環(huán)境變量功能增強(qiáng):新增了兩個API來加載和解析環(huán)境變量
  • process.loadEnvFile(path)用于加載指定路徑的.env文件。如果未指定路徑,則會自動加載當(dāng)前目錄下的.env文件。
  • util.parseEnv(content)用于解析包含環(huán)境變量賦值的字符。

Node.js v22.0

  • 監(jiān)聽模式: 從Node.js 22版本開始,觀察模式(node --watch)已經(jīng)穩(wěn)定。在監(jiān)聽模式下,當(dāng)被監(jiān)視的文件發(fā)生變化時,Node.js進(jìn)程將自動重新啟動,不再需要借助第三方模塊(如 nodemon)。
  • 內(nèi)置 WebSocket 客戶端(穩(wěn)定版): 內(nèi)置 WebSocket 客戶端成為于穩(wěn)定功能,不再需要--experimental-websocket標(biāo)志來啟用。WebSocket的實(shí)現(xiàn)遵循了瀏覽器中WebSocket API的標(biāo)準(zhǔn),這意味著在Node.js中使用WebSocket的方式將與在JavaScript中使用WebSocket的方式非常相似。
  • 支持通過require()引入ESM :打破了CommonJS與ESM之間的界限,允許開發(fā)者使用require()函數(shù)來導(dǎo)入ESM 模塊。這為大型項(xiàng)目和遺留系統(tǒng)提供了一個平滑過渡的方案,因?yàn)樗鼈兛梢灾饌€模塊遷移到ESM,而不是一次性對整個項(xiàng)目進(jìn)行修改。
  • 支持運(yùn)行 package.json 中的腳本: 添加了一個新命令行標(biāo)志--run,允許直接從命令行執(zhí)行package.json中定義的腳本。這提供了一個標(biāo)準(zhǔn)化的方式執(zhí)行腳本,有助于統(tǒng)一不同包管理器在處理腳本時的行為,并且直接使用node執(zhí)行腳本要比通過npm執(zhí)行腳本更快。

Node.js v22.5

  • 支持 SQLite 數(shù)據(jù)庫(實(shí)驗(yàn)性功能):在這個版本中,Node.js自帶了SQLite模塊,開發(fā)者可以直接在程序中使用SQLite數(shù)據(jù)庫,而無需引入第三方庫。

Node.js v22.6

  • 原生支持TypeScript(實(shí)驗(yàn)性功能):通過--experimental-strip-types標(biāo)志,實(shí)現(xiàn)了對TypeScript的實(shí)驗(yàn)性支持。這意味著開發(fā)者們現(xiàn)在可以在Node.js環(huán)境中直接執(zhí)行.ts文件,而無需進(jìn)行額外的編譯步驟。然而,需要注意的是,當(dāng)前的實(shí)驗(yàn)性支持有一些限制,例如僅支持內(nèi)聯(lián)類型注釋,不支持像 enums、namespaces 這樣的高級TypeScript功能。此外,Node.js不會讀取tsconfig.json文件,因此在運(yùn)行時不會進(jìn)行類型校驗(yàn)。
  • 網(wǎng)絡(luò)檢測支持(實(shí)驗(yàn)性功能): 為 Node.js 引入了網(wǎng)絡(luò)檢查的初步支持。這是一個實(shí)驗(yàn)性功能,需要使用--experimental-network-inspection標(biāo)志來啟用它。啟用此功能后,可以檢查 JavaScript 應(yīng)用中發(fā)生的網(wǎng)絡(luò)活動。不過,目前網(wǎng)絡(luò)檢查僅限于http和https模塊。

Node.js v23.0

  • 原生支持 ES 模塊:Node.js v23.0最大的亮點(diǎn)之一是原生支持通過require()加載 ES 模塊(ECMAScript Modules)。這意味著開發(fā)者可以直接使用require()來加載ES模塊,而無需額外的工具或配置。
  • 停止支持 32 位Windows系統(tǒng):不再支持32位Windows,專注于現(xiàn)代環(huán)境。

小結(jié)

近來 Node.js 已經(jīng)在很努力的更新了,相信未來越來越多更現(xiàn)代化的功能被 Node.js 支持。與此同時,Bun 和 Deno 也在迅猛崛起。值得注意的是,Bun 的目標(biāo)不僅限于作為一個 JavaScript 運(yùn)行時,它更致力于構(gòu)建一個全面的 JavaScript 工具鏈。這三者之間的競爭,無疑加速了各自的創(chuàng)新步伐,未嘗不是一件好事。

責(zé)任編輯:姜華 來源: 前端充電寶
相關(guān)推薦

2021-10-26 06:43:36

NodeJavaScript引擎

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2011-09-09 14:23:13

Node.js

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2021-12-25 22:29:57

Node.js 微任務(wù)處理事件循環(huán)

2014-02-19 16:28:53

Node.jsWeb工具

2020-05-29 15:33:28

Node.js框架JavaScript

2012-02-03 09:25:39

Node.js

2015-06-23 15:27:53

HproseNode.js

2020-10-26 08:34:13

Node.jsCORS前端

2021-02-01 15:42:45

Node.jsSQL應(yīng)用程序

2024-07-08 08:53:52

2021-04-06 10:15:29

Node.jsHooks前端

2021-07-09 00:24:10

No.jsNode.js原理

2023-08-29 09:43:21

Node.js.env
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號