Deno(一) —— 初識

誕生的原因

node.js 的作者 Ryan Dahl(ry)推正,因為感覺node.js存在設(shè)計上的嚴重缺陷,而node.js 的大量用戶使得node.js 如果要經(jīng)過大的修改變得非常的困難嘱支,所以ry 選擇離開node.js 開發(fā) deno.

發(fā)布時間

2009年5月袁滥,node.js 發(fā)布驱富。11年后, 2020 年5月13號 Deno發(fā)布了1.0版本凿试,1.0版本的正式發(fā)布引起了IT界很大的關(guān)注排宰。

  • 迄今node.js 在github上的star:


    image.png
  • Deno在github的star:


    image.png

可以看到deno是在迅猛的發(fā)展,雖然說一個新的東西要完全超越或者覆蓋一個舊的東西需要一個很長時間的過渡那婉,或者不大的可能性板甘。
但是筆者對于Deno的流行,抱有必然的信心详炬。

將來Deno和nodejs一定會像Vue和React在前端領(lǐng)域一樣盐类, 在js語言的后端界并駕齊驅(qū)。

安裝

  • Windows安裝使用PowerShell:
iwr https://deno.land/x/install/install.ps1 -useb | iex
  • mac安裝:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
  • 使用choco安裝:
choco install deno
  • 查看deno的版本
$ deno --version

安裝Deno的 VSCode插件

因為Deno的基于ES的標準的模塊系統(tǒng)呛谜,使用import url的導入模塊的形式在跳,以及Deno全局對象并未被VSCode支持,所以需要借助插件 [Deprecated] Deno隐岛,進行支持猫妙,并且將settings 中將 deno.enabled 設(shè)置為 true。
這里有可能查詢deno的環(huán)境變量不存在聚凹,所以需要配置deno的環(huán)境變量割坠。

  • 安裝前:


    image.png
  • 安裝后:


    image.png

Helloworld

  • 新建js文件或者ts文件都可以:
console.log('hello world');

運行:

deno run hellowWorld.ts # hello world

Deno的特點

  • 內(nèi)置就支持TypeScript,這一點比node.js 只支持js如果要寫TS就需要使用轉(zhuǎn)譯的方式妒牙。
  • 基于ES的標準的模塊系統(tǒng)韭脊。
  • 簡化的安裝方式。
  • 既是運行時又是包管理器单旁。
  • 安全性能大大提升沪羔。

Deno 內(nèi)置API使用

const dir = Deno.readDirSync(Deno.cwd());
for (const file of dir) {
    console.log(file);
};

運行:

$ deno run --allow-read dir.ts

Deno 默認支持TS

// index.ts
let num:number = 123;
num = 'deno';

運行:

deno run index.ts

結(jié)果: 這個時候會出現(xiàn)類似以下提示錯誤

Type 'deno' is not assignable to type 'number'.

Deno運行權(quán)限設(shè)置

Deno默認是沒有 網(wǎng)絡(luò)、文件讀象浑、文件寫蔫饰、環(huán)境變量讀取等權(quán)限,所以如果要運行時使用可以 添加上如下:

  • -A, --allow-all 允許所有的權(quán)限愉豺。

  • --allow-env 允許環(huán)境獲取和設(shè)置環(huán)境的權(quán)限篓吁。

  • --allow-hrtime 允許高精度的定時器。

  • --allow-net 允許訪問網(wǎng)絡(luò)的權(quán)限蚪拦。

  • --allow-plugin 允許加載插件權(quán)限杖剪。

  • --allow-read 允許讀文件的權(quán)限冻押。

  • --allow-write 允許寫文件的權(quán)限。

  • --allow-run 允許運行子進程盛嘿,注意子進程并沒有與deno進程相同的安全性洛巢,請謹慎使用。

參考文檔

Deno 中文手冊
Deno 文檔

因為只是初次嘗試次兆,所以暫時只寫到這里稿茉,之后會有更加深入的研究,或者系統(tǒng)的歸納芥炭,期待deno有更好的發(fā)展漓库。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市园蝠,隨后出現(xiàn)的幾起案子渺蒿,更是在濱河造成了極大的恐慌,老刑警劉巖彪薛,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蘸嘶,死亡現(xiàn)場離奇詭異,居然都是意外死亡陪汽,警方通過查閱死者的電腦和手機训唱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挚冤,“玉大人况增,你說我怎么就攤上這事⊙档玻” “怎么了澳骤?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長澜薄。 經(jīng)常有香客問我为肮,道長,這世上最難降的妖魔是什么肤京? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任颊艳,我火速辦了婚禮,結(jié)果婚禮上忘分,老公的妹妹穿的比我還像新娘棋枕。我一直安慰自己,他們只是感情好妒峦,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布重斑。 她就那樣靜靜地躺著,像睡著了一般肯骇。 火紅的嫁衣襯著肌膚如雪窥浪。 梳的紋絲不亂的頭發(fā)上祖很,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音漾脂,去河邊找鬼假颇。 笑死,一個胖子當著我的面吹牛符相,可吹牛的內(nèi)容都是我干的拆融。 我是一名探鬼主播蠢琳,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼啊终,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了傲须?” 一聲冷哼從身側(cè)響起蓝牲,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泰讽,沒想到半個月后例衍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡已卸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年佛玄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片累澡。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡梦抢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愧哟,到底是詐尸還是另有隱情奥吩,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布蕊梧,位于F島的核電站霞赫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肥矢。R本人自食惡果不足惜端衰,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甘改。 院中可真熱鬧靴迫,春花似錦、人聲如沸楼誓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疟羹。三九已至主守,卻和暖如春禀倔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背参淫。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工救湖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涎才。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓鞋既,卻偏偏與公主長得像,于是被迫代替她去往敵國和親耍铜。 傳聞我的和親對象是個殘疾皇子邑闺,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355