Deno 是一个简单、现代且安全的 JavaScript、TypeScript 和 WebAssembly 运行时,它使用 V8 并使用 Rust 构建,作者是 Ryan Dahl(也是 Node.js 的原作者)。基于此,Deno 在 Node.js 已经发展至今的情况下,引入了很多新功能:
- Deno 有默认安全的机制。访问文件系统,网络或运行环境需要被授权;
- Deno 对 TypeScript 的支持度是开箱即用的;
- 外部文件由 URL 明确引用。没有 package.json。
- import 语句需要包括文件后缀(.ts,.tsx,.js,.json)
- 内置依赖检查器和文件格式化工具库
Deno 虽然具有许多不错的功能,但是没有什么能激发用户从 Node.js 切换过来的杰出之处。
尽管 Node.js 可能有其缺陷,但它仍然有能力完成好自己的本分工作,除非 Deno 真的推出了 Node.js 无法复制的强大功能。从用户的角度来看,Deno 仅真正具有一些“次要功能”:一个更简洁的代码库、一个更新的最佳实践方案、一个更好的安全性支持,但是这些东西实际上对用户来说仅仅是“功能特性”而非一个成熟的产品。
Deno 其不支持 NPM 软件包,这实际上是以失去 Node.js 下的整个 NPM 生态系统为代价的情况下的一些小“修复”。如果 Deno 能够支持 NPM 包,这很好的帮助用户将其项目和库从Node.js 迁移到 Deno 。