Deno 是一个默认安全的 JavaScript/TypeScript 运行时环境,有很好的开发体验。
它的基础是V8, Rust 和Tokio。
- 默认安全。没有文件、网络、环境读写(除非设置允许)。
- 支持 TypeScript 开箱即用。
- 输出单个可执行文件 (
deno
)。 (waiting-to-checked) - 内置依赖检测工具
deno info
和代码格式化工具deno fmt
。 - 有一套已审核通过的标准模块保证了Deno 可用。
- 多脚本可打包为一个JS文件。
Deno 旨在为当代程序员提供一个高效安全的脚本环境。
Deno 以单个可执行程序的方式部署。Deno 程序的URL就是一个15MB 的可执行程序压缩包。Deno 同时承担运行时和打包管理的角色。它使用标准的浏览器兼容协议加载URL模块。
另外,旧有的使用 bash 或 python 编写的工具脚本都可以用Deno 来替换
- 只输出一个可执行程序
deno
。 - 默认安全
- 只有在特别允许下,脚本才能访问文件、系统环境和网络。
- 浏览器兼容:没有使用
Deno
作为全局命名空间(或者特征测试)的完全使用 Javascript 写的 Deno 程序子集,都应该原封不动的在现代浏览器中可直接运行。 - 提供内置工具,如单元测试、代码格式化、提高开发体验的提示等。
- 用户不用接触V8 概念。
- 高效提供HTTP服务。
-
Deno 不用
npm
- 它使用模块引用作为URL或者文件路径。
-
Deno 在它的模块解析算法中不使用
package.json
。 -
Deno 中的所有异步操作返回 Promise 。因此,Deno 的 API 和 node API 不一样。
-
Deno 需要特殊设置才能访问文件、网络和操作系统。
-
未捕获的错误都会致使 Deno 退出。
-
使用"ES Modules",不支持
require()
。第三方模块通过URL引入:import * as log from "https://deno.land/std/log/mod.ts";
- 第一次获取远程代码的时候就会缓存,并且永远不会更新,除非使用
--reload
(因此,在飞机上也可以工作 )。 - 通过远程 URL 加载的模块或文件是缓存的、不可变的。
这些 Deno 的 logo,像 Deno 软件是在 MIT license 下面部署的(开放域免费使用)。