近日,Node 之父 Ryan Dahl 發布新的開源項目 deno,從官方介紹來看,可以認為它是下一代 Node,使用 Go 語言代替 C++ 重新編寫跨平臺底層內核驅動,上層仍然使用 V8 引擎,最終提供一個安全的 TypeScript 運行時。
特性
- 支持 TypeScript 2.8 開箱即用;
- 無 package.json,無 npm,不追求兼容 Node;
- 通過 URL 方式引入依賴而非通過本地模塊,并在第一次運行的時候進行加載和緩存,并僅在代碼使用–reload運行,依賴才會更新,引入方式如:
import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts"
import { log } from "./util.ts"
- 可以控制文件系統和網絡訪問權限以運行沙盒代碼,默認訪問只讀文件系統可訪問,無網絡權限。V8 和 Golang 之間的訪問只能通過 protobuf 中定義的序列化消息完成;
- 發生未捕捉錯誤時自動終止運行;
- 支持 top-level 的 await;
- 最終創建單一可執行文件;
- 目標是兼容瀏覽器;
- 可以作為庫引入,用于建立自己的 JavaScript runtime。
總結:這幾個特性,有好幾個都是針對目前 Node 的痛點而來的,包括無 package.json、依賴的引入和更新方式,針對的就是被廣泛吐槽的過大的node_modules。
issue的狂歡
但是deno的git倉庫的issue卻開啟了狂歡模式
image.png
目前,作者已關閉issue功能!
在此呼吁還是希望開發者能夠以學習的心態,去接受先進的技術和語言