發(fā)布于:2021-01-07 13:58:43
0
317
0
Deno 1.0計(jì)劃于5月13日到貨。為此,我們與Deno創(chuàng)作者Ryan Dahl談了有關(guān)Deno與Node有何不同,它與JavaScript生態(tài)系統(tǒng)如何兼容以及旅程將超越v1的信息。可以將lodash與Deno一起使用嗎?
JAXenter:嗨,Ryan,大約兩年前,您開始開發(fā)Deno,它最初是基于不同的概念發(fā)展成為Node的替代方案的想法?,F(xiàn)在,v1即將來(lái)臨,您會(huì)說(shuō)Deno和Node之間的主要區(qū)別是什么?
Ryan Dahl: Deno使用了一種非常簡(jiǎn)單的模塊系統(tǒng),其中模塊和URL一對(duì)一對(duì)應(yīng)。此外,Deno可以立即執(zhí)行TypeScript代碼。這兩個(gè)功能可以大大簡(jiǎn)化開發(fā)人員的工作流程。Deno在安全性方面比Node更嚴(yán)格。默認(rèn)情況下,腳本在不訪問(wèn)操作系統(tǒng)的安全沙箱中運(yùn)行-用戶可以有條件地選擇提供進(jìn)一步的功能-這與瀏覽器安全模型相對(duì)應(yīng),在該模型中,網(wǎng)站要求獲得訪問(wèn)攝像機(jī)或位置信息的許可。通常,Deno的行為更像是Web瀏覽器–本質(zhì)上,它是用于命令行腳本的Web瀏覽器。
JAXenter:對(duì)于許多開發(fā)人員來(lái)說(shuō),一個(gè)重要的問(wèn)題是Deno如何與更大的JavaScript生態(tài)系統(tǒng)集成。在Deno中可以使用Node模塊嗎?
Ryan Dahl:為了實(shí)現(xiàn)簡(jiǎn)化的工作流程,Deno必須尋求與現(xiàn)有生態(tài)系統(tǒng)不兼容的想法。遺憾的是,今天通常很難獲得Node模塊并在Deno上運(yùn)行它,反之亦然。也就是說(shuō),這兩個(gè)都是基于V8構(gòu)建的命令行JavaScript引擎-它們非常相似-我們最終希望可以解決這些兼容性問(wèn)題。這方面的工作之一是https://deno.land/std/node/ ,它在Deno中公開了Node兼容的“ require”功能。
JAXenter:Deno的特定模塊怎么樣?lodash之類的軟件包已經(jīng)移植到Deno了嗎?
Ryan Dahl:是的,Deno上的許多模塊都可以直接使用,其中l(wèi)odash是其中之一:
import snakeCase from "https://deno.land/x/lodash/snakeCase.js"; console.log(snakeCase("fooBar"));
我們?cè)趆ttps://deno.land/x/上保留了可在Deno上運(yùn)行的第三方模塊的索引 。
JAXenter:在發(fā)布v1之后,您對(duì)穩(wěn)定性和進(jìn)一步開發(fā)的計(jì)劃是什么:該版本的維護(hù)時(shí)間是否有保證,或者主要版本的發(fā)布時(shí)間表是否有保證?
Ryan Dahl: v1旨在穩(wěn)定內(nèi)置的JS API,以便開發(fā)人員可以放心其代碼不會(huì)被破壞。但是,我們正在進(jìn)行許多開發(fā),并且我們將繼續(xù)發(fā)布每周更新。我們還沒(méi)有2.0版本的時(shí)間表,甚至還沒(méi)有針對(duì)功能的時(shí)間表,但是人們可以期待定期發(fā)布穩(wěn)定版本。
JAXenter:v1即將完成時(shí),是否已經(jīng)安排了更高版本的功能?如果是這樣,我們期望在進(jìn)一步的Deno版本中看到什么?
Ryan Dahl: 1.0版以后,Rust API會(huì)投入更多的精力將Deno嵌入其他程序中,并制作插件來(lái)擴(kuò)展Deno的功能。我們正在研究?jī)?nèi)置的短絨棉絨(deno lint),希望借此提高代碼質(zhì)量。我們正在研究是否可以在Rust中完成TypeScript類型檢查,而不是使用JavaScript TSC進(jìn)行檢查-這將大大縮短啟動(dòng)時(shí)間。
作者介紹
熱門博客推薦