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中能够找到。

相关文章
相关标签/搜索