目录
简介
deno
是用 Rust 开发的 JavaScript、TypeScript 和 WebAssembly 运行时,是 Node.js 的替代方案,能兼容 Node.js 和 npm 生态。
- 相比于 Node.js,Deno 所做的改进主要体现在以下三方面: 1. 安全性:在没有用户授权的情况下,代码默认在一个安全的沙盒环境中运行,对文件系统、网络和系统环境的访问都将受到限制,这能防止 npm 模块引入的意外漏洞(供应链攻击)。2. 模块管理:支持使用 URL 直接引入模块,不再依赖 npm 或其他包管理工具,不再需要 node_modules 目录,避免了包依赖地狱。3. 工具链:Deno 是一个单一的二进制可执行文件,内置了开发和运维需要的主要功能(如脚本运行、测试、编译、打包),工具链更加简洁。
快速上手
安装
eval "$(curl https://get.x-cmd.com)" # 安装 x-cmd
x env use deno # 使用 x-cmd 安装 deno
使用
- 运行 JavaScript 或 TypeScript 脚本:
deno hello-world.tsdeno https://docs.deno.com/examples/hello-world.tscat hello-world.ts | deno run -
- 控制程序运行时的访问权限,如只允许访问网络,但禁止文件系统等其他资源:
deno run --allow-net script.ts
- 检查和格式化代码:
deno check main.tsdeno fmt src/*.tsdeno lint src/
功能特点
- 原生支持 TypeScript:开发者可以直接编写 TypeScript,并通过 Deno 无缝运行,而不需要像 Node.js 一样通过额外的编译步骤或配置。
- 安全性为首:在没有用户授权的情况下,会限制对文件系统、网络和系统环境的访问,避免了代码在未经授权的情况下访问敏感资源。
- 使用 URL 导入模块:支持使用 URL 直接引入模块,版本控制由 URL 管理,可以不再依赖包管理工具(如 npm)。
- 工具链更简洁:内置了开发和运维需要的主要功能(如脚本运行、测试、编译、打包),不需要额外安装。
- 更符合现代 Web 标准:deno 的 API 经过重新设计,且提供了一个官方的标准库,更加符合现代 JavaScript 的标准。
相关作品和竞品
- node.js:用 C++、JavaScript 和 C 开发的 JavaScript 运行时,是主流的 JavaScript 运行时环境,原作者也是 Ryan Dahl。
- bun:用 Zig 开发的 JavaScript 和 TypeScript 一体化工具包,也是目前流行的 JavaScript 运行时之一。由 Jarred Sumner 所设计,能作为 Node.js 的替代方案。
进一步阅读
- deno 源代码 - deno 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 deno 和参与社区贡献。
- deno 官方网 - 其中包含了 deno 的官方文档。
更多内容请查阅 : pkg/deno
转载请标明原文链接 :https://www.x-cmd.com/pkg/deno
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法
版权归原作者 x-cmd 所有, 如有侵权,请联系我们删除。