1 安裝 ①Windows安裝 A. 下載編譯好的可執行程式 github發佈頁下載官方編譯好的程式,是一個zip壓縮包,裡面就一個簡簡單單的deno.exe程式,把它放到你喜歡的位置,我放在了 ,那麼添加個環境變數就可以使用了。 不會添加環境變數的同學,建議百度學習。 B. 使用curl命令 cu ...
1 安裝
①Windows安裝
根據實踐,curl/powershell,無論什麼工具都好,總之下載速度不一定穩定,最簡單的還是自己下載官方github預編譯的exe,然後自己部署。
我在家用curl速度還能接受,在公司完全跑不起來,但是在公司用powershell安裝速度起飛。
A. 下載編譯好的可執行程式
github發佈頁下載官方編譯好的程式,是一個zip壓縮包,裡面就一個簡簡單單的deno.exe程式,把它放到你喜歡的位置,我放在了D:\mytools\deno\deno.exe
,那麼添加個環境變數就可以使用了。
不會添加環境變數的同學,建議百度學習。
B. 使用curl命令
curl如何安裝見百度,也是個命令行工具(linux和mac好像自帶了)
curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.0.0
會預設安裝到C:\Users\C\.deno
下,可執行程式只有一個,會放到C:\Users\C\.deno\bin
下。
C. 用自己安裝自己(僅限升級)
deno upgrade --version 1.0.0
它會從github上獲取最新的版本解壓zip,然後替換掉現在的exe
D. 使用powershell
iwr https://deno.land/x/install/install.ps1 -useb -outf install.ps1; .\install.ps1 v1.0.0
如果出現下列報錯:
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
說明沒有允許執行腳本,開了就行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
E. 使用chocolatey包管理工具
chocolatey類似linux上的yum或apt-get,它可以用命令行的方式給Windows安裝python啦、docker-desktop啦、nodejs啦等等,甚至可以自己升級自己,感興趣的同學自己搜索資料學習。
安裝命令:
choco install deno
F. 使用Scoop包管理工具
和上面那位老兄chocolatey類似,也是一個包管理工具,可以為Windows安裝各種軟體包。
安裝命令:
scoop install deno
# 安裝特定的版本
scoop install [email protected]
# 切換0.22版本
scoop reset [email protected]
# 切換到最新版本
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很像(實際上出自同一個作者)。
它使用Rust
、V8
和Tokio
開發。
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
重新獲取。
接下來,你需要學習的:
-
第三方模塊
deno可以從網路上任意位置導入模塊,例如github、自己的雲伺服器、cdn(例如pika.dev或jspm.io,國內的沖啊!)
deno提供了一些 內置工具以便第三方模塊的使用,例如
deno info
和deno doc
。deno官方把與他們合作的ES模塊進行了托管,在https://deno.land/x
中可以找到。