Deno
为什么是 Deno?§
- 安全的 JavaScript 和 TypeScript 运行时,底层基于 V8 和 Rust。
- 默认安全。除非明确的赋予权限,否则程序默认没有文件、网络和环境的访问权限。
- 开箱即用 TypeScript 语言。
- 内置多个官方维护的工具包。如
fmt; info;
等。 - 内置多个官方维护的标准库。如
async; fs; http
等。 - 可以直接从 URL 上导入包。
Deno 的生态现在是怎样的?§
Deno 内置了哪些工具包及其用途?§
同步自:《Deno 钻研之术》。最后同步时间:2020-10-06
内置工具包
序号 | 名称 | 命令 | 功能 |
---|---|---|---|
01 | 运行器 | deno run | 运行指定文件名或 URL 程序。 使用“-”作为文件名从标准输入中读取 |
02 | 脚本安装器 | deno install | 将脚本安装为可执行文件 |
03 | 打包器 | deno bundle | 将模块和依赖项打包到单个文件中 |
04 | 缓存器 | deno cache | 缓存依赖 |
05 | 文档生成器 | deno doc | 显示某模块的文档 |
06 | 执行器 | deno eval | 执行一段脚本 |
07 | 格式化器 | deno fmt | 格式化源文件 |
08 | 依赖检查器 | deno info | 显示有关缓存的信息或与源文件相关的信息 |
09 | 规范器 | deno lint | 规范化源文件 |
10 | 测试器 | deno test | 执行测试 |
11 | 类型器 | deno types | 打印运行时 TypeScript 声明 |
12 | 补全器 | deno completions | 生成 Shell 补全信息 |
13 | 升级器 | deno upgrade | 将 Deno 可执行文件升级到给定版本 |
14 | REPL 器 | deo repl | 读取/执行/打印/循环 |
通用指令
01 | -h, --help | 全部 | 打印帮助信息 |
---|---|---|---|
02 | -L, --log-level | 全部 | 设置日志级别 [可能的值: debug, info] |
03 | -q, --quiet | 全部 | 禁止诊断输出;默认情况下,子命令会将可读性友好的诊断消息打印到 stderr;如果设置了这个标志,则将这些消息限制为 errors |
04 | -A, --allow-all | run, install, test | 允许所有权限,这将禁用所有安全限制 |
05 | --allow-env | run, install, test | 允许环境访问,例如读取和设置环境变量 |
06 | --allow-hrtime | run, install, test | 允许高精度时间测量,高精度时间能够在计时攻击和特征识别中使用 |
07 | --allow-net= | run, install, test | 允许网络访问。可以指定一系列用逗号分隔的域名,来提供域名白名单 |
08 | --allow-plugin | run, install, test | 允许加载插件。请注意:这目前是一个不稳定功能 |
09 | --allow-read= | run, install, test | 允许读取文件系统。可以指定一系列用逗号分隔的目录或文件,来提供文件系统白名单。 |
10 | --allow-run | run, install, test | 允许运行子进程。请注意,子进程不在沙箱中运行,因此没有与 deno 进程相同的安全限制,请谨慎使用 |
11 | --allow-write= | run, install, test | 允许写入文件系统。您可以指定一系列用逗号分隔的目录或文件,来提供文件系统白名单 |
12 | --cert | run, install, bundle, chche, eval, info, test, upgrade, repl | 从 PEM 编码的文件中加载证书颁发机构 |
13 | -c, --config | run, install, budle, cache, test | 读取 tsconfig.json 配置文件 |
14 | --unstable | run, install, bundle, cache, doc, eval, fmt, info, lint, test, types, repl | 开启不稳定的 APIs 支持 |
15 | --inspect=HOST:PORT | run, eval, test, repl | 激活监听器 主机:端口 (默认: 127.0.0.1:9229) |
16 | --inspect-brk=HOST:PORT | run, eval, test, repl | 在 主机:端口 上激活监听器,并在用户脚本启动时中断 |
17 | --v8-flags= | run, eval, test, repl | 设置 V8 命令行选项。帮助: --v8-flags=--help |
18 | --cached-only | run, test | 要求远程依赖项已经被缓存 |
19 | -r, --reload=<CACHE_BLOCKLIST> | run, cache, doc, test | 重新加载源代码缓存(重新编译TypeScript)。重新加载全部/仅标准模块/特定模块 |
20 | --lock | run, bundle, cache, test | 检查指定的锁文件 |
21 | --lock-write | run, bundle, cache, test | 写入锁文件,和 --lock 一起使用 |
22 | --no-check | run, cache, info, test | 禁用 TypeScript 的类型检查,这会大大减少程序的启动时间 |
23 | --no-remote | run, cache, test | 不解析远程模块 |
24 | --seed | run, test | Math.random() 种子 |
25 | --importmap | run, install, bundle, test | 不稳定:读取 import map 文件 |
26 | --json | doc, info | 以 JSON 格式输出文档 |
内置环境变量
01 | DENO_DIR | 设置缓存目录 | |
---|---|---|---|
02 | DENO_INSTALL_ROOT | 设置 Deno 安装的软件包输入目录 | 默认为 $HOME/.deno/bin |
03 | NO_COLOR | 设置禁止使用颜色 | |
04 | DENO_CERT | 从 PEM 编码的文件加载证书颁发机构 | |
05 | HTTP_PROXY | HTTP 请求的代理地址 | 模块 downloads 和 fetch |
06 | HTTPS_PROXY | HTTPS 请求的代理地址 | 模块 downloads 和 fetch |