前言
又是一年春草绿。无数个技术框架在更新,在成长。那么,什么前景巨大呢?我想,Deno,值得拥有!
Deno介绍
Deno是一个简单、现代、安全的JavaScript和TypeScript运行环境,它使用V8引擎,基于Rust开发。
V8是Chromium项目为GoogleChrome和ChromiumWeb浏览器开发的开源Java脚本引擎。
Rust是一种多范式编程语言,关注性能和安全性,特别是安全并发性。
Deno作为2020年正式发布的一款运行框架,具有以下特性:
- 默认情况下是安全的。除非显式启用,否则不能访问文件、网络或环境。
- 支持开箱即用的TypeScript。
- 只分发一个独立的可执行文件(deno)。
- 具有内置的实用程序,如依赖信息查看器(deno info)和代码格式化程序(deno fmt)。
- 有一套经过审查(审核)的标准模块
Deno发展历史
Deno架构
Deno安装
安装相当简单。Deno 能够在 macOS、Linux 和 Windows 上运行。Deno 是一个单独的可执行文件,它没有额外的依赖。
安装Deno有两种方法。
- 官方下载,手动安装
- 使用命令,自动安装
官方下载
可以从官方的deno发布页面下载发布的文件。
以Windows操作系统为例,下载文件 deno-x86_64-pc-windows-msvc.zip ,解压缩之后,就是一个独立的可执行的exe文件。
命令安装
根据不同的系统,使用不同的安装工具
Shell (Mac, Linux):
$curl -fsSL https://deno.land/x/install/install.sh | sh
PowerShell (Windows):
$iwr https://deno.land/x/install/install.ps1 -useb | iex
Homebrew (Mac):
$brew install deno
Chocolatey (Windows):
$choco install deno
Scoop (Windows):
$scoop install deno
Build and install from source using Cargo
$cargo install deno
更多的安装说明,可以参考deno_install
Hello World
下载安装之后,我们可以实战我们的HelloWorld程序了。采用官方的Welcome.ts,进行演示。
下载Welcome.ts
运行命令 :
deno run https://deno.land/std/examples/welcome.ts
更复杂的尝试
编写一个ts文件
import { serve } from "https://deno.land/std@0.88.0/http/server.ts"; const s = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of s) { req.respond({ body: "Hello,First Deno Program\n" }); }
运行
deno run --allow-net ts/test.ts
运行异常
上述更复杂的尝试,我们可以看到命令上加上了 --allow-net参数。
正常运行命令
deno run test.ts
为什么会发生异常呢?
默认情况下,Deno是安全的。因此,除非我们特别启用它,否则deno模块对文件、网络或环境没有多余的功能。所以,我们需要明确地授予权限。
–allow-net – 访问网络
–allow-read – 读文件
–allow-write – 写文件
Deno标准库
Deno 提供一组标准模块,它们经过核心团队审计,保证能在 Deno 上工作。标准库地址:https://deno.land/std/
Deno第三方库
Deno可以从web上的任何位置导入模块。
为了更容易使用第三方模块,Deno提供了一些内置工具,如Deno info和Deno doc。
总结
让我们总结一下关于deno js入门的所有学习。
- Deno不是node js的替代品。
- Deno是 JavaScript和TypeScript的安全运行环境。
- 如果广泛使用typescript,那么deno.js允许去掉额外的javascript编译器,比如babel。
- Deno不使用npm,也不使用npm包.json.
如果仍有疑问,请参阅deno手册了解更多信息。
2021年,新的尝试,新的开始。快搞起来吧!!