deno初體驗/安裝與helloworld

1 安裝

①Windows安裝

A. 下載編譯好的可執行程序

github發佈頁下載官方編譯好的程序,是一個zip壓縮包,裏面就一個簡簡單單的deno.exe程序,把它放到你喜歡的位置,我放在了D:\mytools\deno\deno.exe,那麼添加個環境變量就可使用了。node

不會添加環境變量的同窗,建議百度學習。python

B. 使用curl命令

curl如何安裝見百度,也是個命令行工具(linux和mac好像自帶了)linux

curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.0.0
# 若是不指定版本,就安裝最新的給你
curl -fsSL https://deno.land/x/install/install.sh | sh

會默認安裝到C:\Users\C\.deno下,可執行程序只有一個,會放到C:\Users\C\.deno\bin下。git

C. 用本身安裝本身(僅限升級)

deno upgrade --version 1.0.0

它會從github上獲取最新的版本解壓zip,而後替換掉如今的exegithub

D. 使用powershell

iwr https://deno.land/x/install/install.ps1 -useb -outf install.ps1; .\install.ps1 v1.0.0

若是出現下列報錯:docker

iwr ... cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:71
+ ... /x/install/install.ps1 -useb -outf install.ps1; .\install.ps1 v0.38.0
+                                                     ~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess

說明沒有容許執行腳本,開了就行:typescript

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

E. 使用chocolatey包管理工具

chocolatey相似linux上的yum或apt-get,它能夠用命令行的方式給Windows安裝python啦、docker-desktop啦、nodejs啦等等,甚至能夠本身升級本身,感興趣的同窗本身搜索資料學習。shell

安裝命令:npm

choco install deno

F. 使用Scoop包管理工具

和上面那位老兄chocolatey相似,也是一個包管理工具,能夠爲Windows安裝各類軟件包json

安裝命令:

scoop install deno
# 安裝特定的版本
scoop install deno@0.22.0
# 切換0.22版本
scoop reset deno@0.22.0
# 切換到最新版本
scoop reset deno

G. 使用Homebrew包管理工具和Cargo管理工具

沒完了是吧?

brew install deno
# or
cargo install deno

H. 環境變量

DENO_INSTALL環境變量是deno的安裝目錄,默認是各類操做系統的home目錄的.deno目錄。在Windows上,就是C:\Users\C\.deno

能夠在使用powershell安裝的時候更改路徑:

$env:DENO_INSTALL = "C:\Program Files\deno"
iwr https://deno.land/x/install/install.ps1 -useb | iex

這樣就安裝到C:\Program Files\deno下了。

②mac和linux安裝

沒有環境,暫空。

③ 從源碼安裝

如今還沒學,之後再說。

④ 測試

安裝好後,命令行敲入命令

deno --version

反饋以下(或相似信息)即成功:

deno 1.0.0
v8 8.4.300
typescript 3.9.2

幫助請輸入:

deno --help

2 helloworld

隨便在哪新建一個js或者ts文件,寫入這句經典的代碼:

// helloworld.ts
console.log(`hello world`)

定位到這個文件的目錄,使用命令:

deno run helloworld.ts

若是控制檯能輸出hello world,恭喜你,成功了。

2.1 遠程的文件

假設在本機有一個http服務上的ts文件(你能夠用任意工具架設):

// http://localhost:3111/helloworld.ts
console.log(`hello world`)

那麼deno也能夠這麼運行:

deno run http://localhost:3111/helloworld.ts

3 進一步

deno是一個原生的js/ts運行時,就是能在機器上直接跑js/ts代碼的環境,和nodejs很像(實際上出自同一個做者)。

它使用RustV8Tokio開發。

vs Node.js

  • deno沒有npm這種東西了

    • 它的模塊化僅僅經過URL傳遞,或者文件路徑
  • 不須要package.json來組織邏輯了

  • 全部異步操做返回promise,因此deno提供了和node不同的api

  • Deno須要文件、網絡、環境訪問的權限

  • 若是沒有捕獲錯誤,那麼deno就會掛掉

  • 不用CommonJs的require()引入包,而是使用ES模塊化import

    import * as log from "https://deno.land/std/log/mod.ts";

注意:

  • 遠程代碼第一次執行的時候纔會下載,以後都是用緩存,除非你用--reload從新獲取。

接下來,你須要學習的:

  • 指引文檔:https://deno.land/manual

  • 標準模塊:https://deno.land/std,經過url分發

  • 第三方模塊

    deno能夠從網絡上任意位置導入模塊,例如github、本身的雲服務器、cdn(例如pika.dev或jspm.io,國內的衝啊!)

    deno提供了一些 內置工具以便第三方模塊的使用,例如deno infodeno doc。deno官方把與他們合做的ES模塊進行了託管,在https://deno.land/x中能夠找到。

相關文章
相關標籤/搜索