最近Deno討論比較熱門,而且有說 「Deno極可能是下一個前端的大事件」,因此關注下。javascript
Node.js 和 Deno 的起源做者都是 Ryan Dahl他從2009年開始從事Node項目,可是幾年後卻退出了該項目。在2018年的時候,他發表了我對Node.js感到遺憾的10件事,另外他宣佈了建立全新的Deno項目 。前端
做者GitHub https://github.com/ryjava
Ryan DahI 提到的Node十個設計錯誤,不少都是基層方面的設計錯誤,要深刻理解須要有專業功底。本人做爲小白,只是整理羅列。node
有的時候 npm install 要等好久,而後發現應用下載了幾百mb的node_module。git
附上演講視頻地址: https://www.bilibili.com/vide...
Deno是使用JavaScript和TypeScript編寫應用程序的新平臺。兩種平臺具備相同的理念-事件驅動架構和異步非阻塞工具來構建Web服務器和服務。程序員
這兩個平臺具備相同的目的,可是使用不一樣的機制。Deno使用ES模塊做爲默認模塊系統,而Node.js使用CommonJS。外部依賴項是使用URL加載的,相似於瀏覽器。也沒有包管理器和集中式註冊表,能夠在Internet上的任何位置託管模塊。與Node.js相反,Deno在沙箱中執行代碼,這意味着運行時沒法訪問網絡,文件系統和環境。須要明確授予訪問權限,這意味着更好的安全性。Deno開箱即用地支持TypeScript,這意味着咱們不須要手動安裝和配置工具來編寫TypeScript代碼。另外一個區別是Deno提供了一組內置工具,例如測試運行器,代碼格式化程序和捆綁程序。github
# Deno import { serve } from "https://deno.land/std@0.53.0/http/server.ts"; # Node const server requrie('server')
Deno經過URL導入代碼,能夠在互聯網上的任何地方託管模塊。無需集中註冊表便可分發Deno軟件包。也不須要package.json文件和依賴項列表,由於全部模塊都是在應用程序運行時下載,編譯和緩存的。npm
Krzysztof Piechowicz:Deno的目標不是取代Node.js,而是提供替代方案。其中一些差別頗具爭議,很難預測它們是否將以正確的方式格式化。我建議全部Node.js程序員都注意這個項目。我不肯定該項目是否會成功,但這是觀察Node.js如何以不一樣方式實現的絕佳機會。
演講視頻地址: https://www.bilibili.com/vide...
附錄資源json
官網: https://deno.land源碼:https://github.com/denoland/denopromise
# 安裝 curl -fsSL https://deno.land/x/install/install.sh | sh # 運行Demo deno run https://deno.land/std/examples/welcome.ts
例子
import { serve } from "https://deno.land/std@0.53.0/http/server.ts"; const s = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of s) { req.respond({ body: "Hello World\n" }); }
Deno 是否會帶來變革,咱們拭目以待!!