简中文档
On this page

deno repl,交互式脚本提示

Command line usage

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

Starts a read-eval-print-loop, which lets you interactively build up program state in the global context. It is especially useful for quick prototyping and checking snippets of code.

TypeScript is supported, however it is not type-checked, only transpiled.


Options Jump to heading

--cert Jump to heading

Load certificate authority from PEM encoded file.

--config Jump to heading

Short flag: -c

Configure different aspects of deno including TypeScript, linting, and code formatting Typically the configuration file will be called deno.json or deno.jsonc and automatically detected; in that case this flag is not necessary.

--env-file Jump to heading

Load environment variables from local file Only the first environment variable with a given key is used. Existing process environment variables are not overwritten, so if variables with the same names already exist in the environment, their values will be preserved. Where multiple declarations for the same environment variable exist in your .env file, the first one encountered is applied. This is determined by the order of the files you pass as arguments.

--eval Jump to heading

Evaluates the provided code when the REPL starts.

--eval-file Jump to heading

Evaluates the provided file(s) as scripts when the REPL starts. Accepts file paths and URLs.

--location Jump to heading

Value of globalThis.location used by some web APIs.

--no-config Jump to heading

Disable automatic loading of the configuration file.

--seed Jump to heading

Set the random number generator seed.

--v8-flags Jump to heading

To see a list of all available flags use --v8-flags=--help Flags can also be set via the DENO_V8_FLAGS environment variable. Any flags set with this flag are appended after the DENO_V8_FLAGS environment variable.

Dependency management options Jump to heading

--cached-only Jump to heading

Require that remote dependencies are already cached.

--frozen Jump to heading

Error out if lockfile is out of date.

--import-map Jump to heading

Load import map file from local file or remote URL.

--lock Jump to heading

Check the specified lock file. (If value is not provided, defaults to "./deno.lock").

--no-lock Jump to heading

Disable auto discovery of the lock file.

--no-npm Jump to heading

Do not resolve npm modules.

--no-remote Jump to heading

Do not resolve remote modules.

--node-modules-dir Jump to heading

Sets the node modules management mode for npm packages.

--reload Jump to heading

Short flag: -r

Reload source code cache (recompile TypeScript) no value Reload everything jsr:@std/http/file-server,jsr:@std/assert/assert-equals Reloads specific modules npm: Reload all npm modules npm:chalk Reload specific npm module.

--vendor Jump to heading

Toggles local vendor folder usage for remote modules and a node_modules folder for npm packages.

Debugging options Jump to heading

--inspect Jump to heading

Activate inspector on host:port [default: 127.0.0.1:9229]

--inspect-brk Jump to heading

Activate inspector on host:port, wait for debugger to connect and break at the start of user script.

--inspect-wait Jump to heading

Activate inspector on host:port and wait for debugger to connect before running user code.

特殊变量 Jump to heading

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

标识符 描述
_ 返回最后评估的表达式
_error 返回最后抛出的错误
Deno 1.14.3
使用 ctrl+d 或 close() 退出
> "hello world!"
"hello world!"
> _
"hello world!"
> const foo = "bar";
undefined
> _
undefined

特殊函数 Jump to heading

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

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

--eval 标志 Jump to heading

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

$ deno repl --allow-net --eval 'import { assert } from "jsr:@std/assert@1"'
Deno 1.45.3
使用 ctrl+d、ctrl+c 或 close() 退出
> assert(true)
undefined
> assert(false)
未捕获 AssertionError
    at assert (https://jsr.io/@std/assert/1.0.0/assert.ts:21:11)
    at :1:22

--eval-file 标志 Jump to heading

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

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

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

$ deno repl --eval-file=https://docs.deno.com/examples/welcome.ts,https://docs.deno.com/examples/local.ts
下载 https://docs.deno.com/examples/welcome.ts
欢迎使用 Deno!
下载 https://docs.deno.com/examples/local.ts
Deno 1.45.3
使用 ctrl+d 或 close() 退出
> local // 这个变量在 local.ts 中被本地定义,但未被导出
"This is a local variable inside of local.ts"

相对导入路径解析 Jump to heading

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

$ deno repl --eval-file=https://jsr.io/@std/encoding/1.0.0/ascii85.ts
--eval-file 文件 https://jsr.io/@std/encoding/1.0.0/ascii85.ts 中出错。未捕获 TypeError: 找不到模块 "file:///home/_validate_binary_like.ts"。
    at async :2:13
Deno 1.45.3
使用 ctrl+d 或 close() 退出
>

Tab 补全 Jump to heading

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

$ deno repl
Deno 1.45.3
使用 ctrl+d 或 close() 退出
> Deno.read
readTextFile      readFile          readDirSync       readLinkSync      readAll           read
readTextFileSync  readFileSync      readDir           readLink          readAllSync       readSync

快捷键 Jump to heading

按键组合 操作
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 Jump to heading

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

你找到了你需要的东西吗?

编辑此页面
隐私政策