deno.com
本页内容

deno repl,交互式脚本提示符

命令行用法

deno repl [OPTIONS] [-- [ARGS]...]

启动一个读取-求值-打印循环(REPL),让您在全局上下文中以交互方式构建程序状态。它对于快速原型设计和检查代码片段特别有用。

支持 TypeScript,但它不进行类型检查,只进行转译。


选项 跳转到标题

--cert 跳转到标题

从 PEM 编码的文件加载证书颁发机构。

--config 跳转到标题

短标志:-c

配置 deno 的不同方面,包括 TypeScript、代码检查和代码格式化。通常,配置文件将被称为 deno.jsondeno.jsonc 并自动检测;在这种情况下,此标志不是必需的。

--env-file 跳转到标题

从本地文件加载环境变量。仅使用给定键的第一个环境变量。现有的进程环境变量不会被覆盖,因此如果环境中已存在同名的变量,则其值将被保留。如果您的 .env 文件中存在同一环境变量的多个声明,则应用遇到的第一个声明。这由您作为参数传递的文件的顺序决定。

--eval 跳转到标题

在 REPL 启动时评估提供的代码。

--eval-file 跳转到标题

在 REPL 启动时将提供的文件评估为脚本。接受文件路径和 URL。

--location 跳转到标题

一些 Web API 使用的 globalThis.location 的值。

--no-config 跳转到标题

禁用自动加载配置文件。

--seed 跳转到标题

设置随机数生成器种子。

--v8-flags 跳转到标题

要查看所有可用标志的列表,请使用 --v8-flags=--help 标志也可以通过 DENO_V8_FLAGS 环境变量设置。使用此标志设置的任何标志都将附加在 DENO_V8_FLAGS 环境变量之后。

依赖管理选项 跳转到标题

--cached-only 跳转到标题

要求远程依赖项已缓存。

--frozen 跳转到标题

如果 lockfile 过期,则报错。

--import-map 跳转到标题

从本地文件或远程 URL 加载导入映射文件。

--lock 跳转到标题

检查指定的 lock 文件。(如果未提供值,则默认为“./deno.lock”)。

--no-lock 跳转到标题

禁用自动发现 lock 文件。

--no-npm 跳转到标题

不解析 npm 模块。

--no-remote 跳转到标题

不解析远程模块。

--node-modules-dir 跳转到标题

设置 npm 包的 node modules 管理模式。

--reload 跳转到标题

短标志:-r

重新加载源代码缓存(重新编译 TypeScript)。无值:重新加载所有内容。jsr:@std/http/file-server,jsr:@std/assert/assert-equals:重新加载特定模块。npm::重新加载所有 npm 模块。npm:chalk:重新加载特定 npm 模块。

--vendor 跳转到标题

切换本地 vendor 文件夹用于远程模块和 node_modules 文件夹用于 npm 包的用法。

调试选项 跳转到标题

--inspect 跳转到标题

在 host:port 上激活检查器 [默认值:127.0.0.1:9229]

--inspect-brk 跳转到标题

在 host:port 上激活检查器,等待调试器连接并在用户脚本开始时中断。

--inspect-wait 跳转到标题

在 host:port 上激活检查器,并在运行用户代码之前等待调试器连接。

特殊变量 跳转到标题

REPL 提供了一些始终可用的特殊变量

标识符 描述
_ 产生最后求值的表达式
_error 产生最后抛出的错误
Deno 1.14.3
exit using ctrl+d or close()
> "hello world!"
"hello world!"
> _
"hello world!"
> const foo = "bar";
undefined
> _
undefined

特殊函数 跳转到标题

REPL 在全局作用域中提供几个函数

函数 描述
clear() 清除整个终端屏幕
close() 关闭当前 REPL 会话

--eval 标志 跳转到标题

--eval 标志允许您在进入 REPL 之前在运行时中运行一些代码。这对于导入您在 REPL 中常用的代码,或以某种方式修改运行时非常有用

$ deno repl --allow-net --eval 'import { assert } from "jsr:@std/assert@1"'
Deno 1.45.3
exit using ctrl+d, ctrl+c, or close()
> assert(true)
undefined
> assert(false)
Uncaught AssertionError
    at assert (https://jsr.deno.org.cn/@std/assert/1.0.0/assert.ts:21:11)
    at :1:22

--eval-file 标志 跳转到标题

--eval-file 标志允许您在进入 REPL 之前从指定文件运行代码。与 --eval 标志一样,这对于导入您在 REPL 中常用的代码,或以某种方式修改运行时非常有用。

文件可以指定为路径或 URL。URL 文件被缓存,可以通过 --reload 标志重新加载。

如果也指定了 --eval,则 --eval-file 文件在 --eval 代码之前运行。

$ deno repl --eval-file=https://docs.deno.org.cn/examples/welcome.ts,https://docs.deno.org.cn/examples/local.ts
Download https://docs.deno.org.cn/examples/welcome.ts
Welcome to Deno!
Download https://docs.deno.org.cn/examples/local.ts
Deno 1.45.3
exit using ctrl+d or close()
> local // this variable is defined locally in local.ts, but not exported
"This is a local variable inside of local.ts"

相对导入路径解析 跳转到标题

如果 --eval-file 指定了一个包含相对导入的代码文件,则运行时将尝试相对于当前工作目录解析导入。它不会尝试相对于代码文件的位置解析它们。当 --eval-file 与模块文件一起使用时,这可能会导致“Module not found”错误

$ deno repl --eval-file=https://jsr.deno.org.cn/@std/encoding/1.0.0/ascii85.ts
error in --eval-file file https://jsr.deno.org.cn/@std/encoding/1.0.0/ascii85.ts. Uncaught TypeError: Module not found "file:///home/_validate_binary_like.ts".
    at async :2:13
Deno 1.45.3
exit using ctrl+d or close()
>

Tab 补全 跳转到标题

Tab 补全是在 REPL 中快速导航的关键功能。在按下 tab 键后,Deno 现在将显示所有可能的补全列表。

$ deno repl
Deno 1.45.3
exit using ctrl+d or close()
> Deno.read
readTextFile      readFile          readDirSync       readLinkSync      readAll           read
readTextFileSync  readFileSync      readDir           readLink          readAllSync       readSync

键盘快捷键 跳转到标题

按键 动作
Ctrl-A, Home 将光标移动到行首
Ctrl-B, Left 将光标向左移动一个字符
Ctrl-C 中断并取消当前编辑
Ctrl-D 如果行空的,则发出行尾信号
Ctrl-D, Del 如果行不是空的,则删除光标下的字符
Ctrl-E, End 将光标移动到行尾
Ctrl-F, Right 将光标向右移动一个字符
Ctrl-H, Backspace 删除光标前的字符
Ctrl-I, Tab 下一个补全
Ctrl-J, Ctrl-M, Enter 完成行输入
Ctrl-K 从光标处删除到行尾
Ctrl-L 清屏
Ctrl-N, Down 历史记录中的下一个匹配项
Ctrl-P, Up 历史记录中的上一个匹配项
Ctrl-R 反向搜索历史记录(Ctrl-S 向前,Ctrl-G 取消)
Ctrl-T 将前一个字符与当前字符转置
Ctrl-U 从行首删除到光标处
Ctrl-V 插入任何特殊字符而不执行其关联的操作
Ctrl-W 删除光标前的单词(使用空格作为单词边界)
Ctrl-X Ctrl-U 撤消
Ctrl-Y 从 Yank 缓冲区粘贴
Ctrl-Y 从 Yank 缓冲区粘贴(Meta-Y 粘贴下一个 yank)
Ctrl-Z 暂停(仅限 Unix)
Ctrl-_ 撤消
Meta-0, 1, ..., - 指定参数的数字。 开始一个负参数。
Meta < 移动到历史记录中的第一个条目
Meta > 移动到历史记录中的最后一个条目
Meta-B, Alt-Left 将光标移动到上一个单词
Meta-Backspace 从当前单词的开头删除,或者,如果在单词之间,则删除到上一个单词的开头
Meta-C 将当前单词首字母大写
Meta-D 向前删除一个单词
Meta-F, Alt-Right 将光标移动到下一个单词
Meta-L 将下一个单词小写
Meta-T 转置单词
Meta-U 将下一个单词大写
Meta-Y 请参阅 Ctrl-Y
Ctrl-S 插入新行

DENO_REPL_HISTORY 跳转到标题

您可以使用 DENO_REPL_HISTORY 环境变量来控制 Deno 存储 REPL 历史记录文件的位置。您可以将其设置为空值,Deno 将不会存储历史记录文件。

您找到所需的信息了吗?

隐私政策