簡簡單單的來入個deno的門吧

前不久, deno1.0 正式發佈,相信大家應該都已經聽過它了.畢竟deno的作者正是大名鼎鼎的nodeJS之父Ryan Dahl.他在之前聲稱node已經無力迴天了,所以他決定新寫一個deno.意爲destroy node.通俗的說就是一個號練廢了,現在要重新練一個號.

deno怎麼發音,有說蒂諾的,有說德諾的.爲此,我特意去YouTube上聽了下deno作者的發音,鏈接戳我,但我怎麼感覺聽着更像是呆諾呢? 各位同學可以自行愛好發音.

deno特性

Deno是使用V8引擎並內置於Rust的一個簡單現代並且安全的JavaScript和TypeScript運行時(Tips: 原先是用golang開發的,後來因爲性能問題改用Rust)
這裏簡單的列了一下其中的一些特性:

  1. 默認爲安全,除非明確啓用,否則沒有文件,網絡或環境訪問權限
  2. 開箱即用的支持TypeScript
  3. 僅發送一個可執行文件
  4. 具有內置的實用程序,如依賴檢查器和代碼格式化(fmt)
  5. 擁有一組保證能夠與deno一起使用的經過審覈的標準模塊:鏈接戳我

安裝

因爲我自己是macOS系統,所以國際慣例使用homebrew來安裝

brew install deno

window系統的安裝方式

choco install deno

還有其他的安裝方式,可以自行查看: 如何安裝

測試安裝

deno --version

如果打印了deno的版本號則證明已經安裝成功了
在這裏插入描述
我這邊是打印出了deno, v8引擎以及ts的版本號

更新deno

deno upgrade

如果想要更新到某一個特定的版本,那就

deno upgrade --version 1.0.1

但是這個更新的速度實在是太…
所以,有時候還是選擇手動下包吧,自己動手,豐衣足食 鏈接戳我.將下載下來的包解壓縮後,替換原來的可執行文件即可.
這裏可以看到我的deno版本已經更新了.
在這裏插入圖片描述

查看命令行

deno --help

基本上的環境都有 --help的指令,方便我們查看相關的指令.這裏我們也是照例來簡單瞧一瞧都有哪些信息.
在輸出結果中,我們可以看到除了常用命令外,它還告訴了我們該如何執行一個腳本

運行遠程文件

接下來讓我們來運行下help信息中展示給我們看的代碼:

deno run https://deno.land/std/examples/welcome.ts

在這裏插入圖片描述
可以看到當我第一次運行代碼的時候,它是先下載,然後再編譯.
此時我們再次運行下代碼,發現就只是直接編譯了.
在這裏插入圖片描述
這是因爲通過外部地址引入的文件或庫,在第一次下載後都會緩存在本地,所以第二次就不下載,而是直接編譯了.
我們可以看到在終端輸出了 Welcome to Deno 🦕這句話.我們打開上面的網址可以看到它上面的代碼就只有一行
在這裏插入圖片描述
這個可愛的圖標就是一隻小恐龍,因爲deno的標誌就是一隻恐龍呀

運行本地文件

我們新建一個index.ts文件

console.log('hello deno');

運行下該文件deno run index.ts
終端輸出了hello deno,證明我們的本地文件也已經運行起來了

權限

文件權限

我們修改代碼

console.log(Deno.cwd());

再次執行文件,會報錯

Uncaught PermissionDenied: read access to "/Users/xxx/code/deno/deno_test", run again with the --allow-read flag

這是因爲deno的安全策略(即上面的特性1),默認是沒有文件,網絡或環境訪問權限的,除非我們明確啓用.於是我們加上--allow-read參數,再次執行deno run --allow-read index.ts 可以看到我們的文件路徑已經打印出來了.

網絡權限

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(json => console.log(json))

執行運行命令deno run index.ts,報錯

error: Uncaught PermissionDenied: network access to "https://jsonplaceholder.typicode.com/todos/1", run again with the --allow-net flag

重新執行命令deno run --allow-net index.ts, 可以看到輸出結果了

{ userId: 1, id: 1, title: "delectus aut autem", completed: false }

編輯器插件

前面我們提到了引用外部庫的時候,第一次是會下載的,那麼我們下載下來的文件在什麼地方呢?這裏我使用的編輯器是VSCode,我們可以安裝一個插件Deno.
在這裏插入圖片描述
安裝好以後,我們只要將鼠標放到引入的url上,它就會顯示這個文件在我們本地的位置.
在這裏插入圖片描述

內置工具

可以對照特性4,我們先來看原代碼
在這裏插入圖片描述
執行命令後:

deno fmt index.ts

在這裏插入圖片描述
可以看到代碼中開頭的空格已經沒了

引入標準庫

我們執行上圖中的代碼,輸出如下:
在這裏插入圖片描述
這也印證了特性5,deno擁有一些標準庫.

當然除了官方的標準庫以外,還有第三方庫,可以在這裏看到鏈接戳我

總結: deno簡單的入門差不多就到這裏了,對deno已經有了一個大致的概念.我估計大部分的人可能在未來的幾年裏面,工作中都用不到這個.寶寶心裏苦啊😭,node還沒學會,現在就要毀滅node了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章