Deno 介紹

2020-06-24 17:03 更新

Deno 是一個 JavaScript/TypeScript 的運行時,默認(rèn)使用安全環(huán)境執(zhí)行代碼,有著卓越的開發(fā)體驗。 Deno 建立在 V8、Rust 和 Tokio 的基礎(chǔ)上。

功能亮點

  • 默認(rèn)安全。外部代碼沒有文件系統(tǒng)、網(wǎng)絡(luò)、環(huán)境的訪問權(quán)限,除非顯式開啟。

  • 支持開箱即用的 TypeScript 的環(huán)境。

  • 只分發(fā)一個獨立的可執(zhí)行文件 (deno)。
  • 有著內(nèi)建的工具箱,比如一個依賴信息查看器 (deno info) 和一個代碼格式化工具 (deno fmt)。
  • 有一組經(jīng)過審計的 標(biāo)準(zhǔn)模塊,保證能在 Deno 上工作。
  • 腳本代碼能被打包為一個單獨的 JavaScript 文件。

作用

Deno 旨在為現(xiàn)代程序員提供高效、安全的腳本環(huán)境。

它將始終作為單個可執(zhí)行文件分發(fā),并且該可執(zhí)行文件將能運行任何 Deno 程序。給定一個 Deno 程序的 URL,您應(yīng)該能夠用壓縮后不超過 15 MB 的 Deno 可執(zhí)行文件運行它。

Deno 明確地承擔(dān)了運行時和包管理器的角色。它使用標(biāo)準(zhǔn)的瀏覽器兼容協(xié)議(URL)來加載模塊。

對于過去用 bash 或 python 編寫的工具腳本來說,Deno 是一個優(yōu)秀的替代品。

目標(biāo)

  • 只分發(fā)一個獨立的可執(zhí)行文件 (deno)。

  • 默認(rèn)安全。外部代碼沒有文件系統(tǒng)、網(wǎng)絡(luò)、環(huán)境的訪問權(quán)限,除非顯式開啟。

  • 瀏覽器兼容:完全用 JavaScript 編寫且不使用全局Deno命名空間(或功能測試)的程序是 Deno 程序的子集,應(yīng)該能夠直接在現(xiàn)代瀏覽器中運行而無需更改。

  • 提供內(nèi)置工具來提升開發(fā)體驗,比如單元測試、代碼格式化、代碼檢查。

  • 不把 V8 的概念泄露到用戶空間。

  • 能夠高效地提供 HTTP - 服務(wù)

與 Node.js 的比較

Deno 不使用 npm,而是使用 URL 或文件路徑引用模塊。 Deno 在模塊解析算法中不使用 package.json。 Deno 中的所有異步操作返回 promise,因此 Deno 提供與 Node 不同的 API。 Deno 需要顯式指定文件、網(wǎng)絡(luò)和環(huán)境權(quán)限。 當(dāng)未捕獲的錯誤發(fā)生時,Deno 總是會異常退出。 使用 ES 模塊,不支持 require()。第三方模塊通過 URL 導(dǎo)入。 import * as log from "https://deno.land/std/log/mod.ts";

其他關(guān)鍵行為

遠(yuǎn)程代碼在第一次運行時獲取并緩存,直到代碼通過 --reload 選項運行。(所以它在飛機上也能工作) 從遠(yuǎn)程 URL 加載的模塊或文件應(yīng)當(dāng)是不可變且可緩存的。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號