node repl 历史文件路径和条目数可通过 node_repl_history 和 node_repl_history_size 环境变量自定义,支持跨会话持久化;代码中可用 repl.setuphistory() 精细控制,禁用旧变量 node_repl_history_file。

Node REPL 默认会把历史命令存到 ~/.node_repl_history,但这个路径和行为完全可定制——关键是用对环境变量和 API,而不是依赖默认。
用 NODE_REPL_HISTORY 指定自定义 history 文件路径
这是最直接、最稳定的方式。只要在启动 Node 前设置该变量,REPL 就会把所有输入命令持久保存到你指定的文件里,跨会话生效。
- Linux/macOS:在终端中运行
NODE_REPL_HISTORY="/path/to/my_repl_history" node - 永久生效:加到
~/.bashrc或~/.zshrc中,例如:export NODE_REPL_HISTORY="$HOME/.config/node/repl_history" - Windows(PowerShell):
$env:NODE_REPL_HISTORY="C:\Users\Me\node_repl_history" - 注意:路径必须可写;设为空字符串(
NODE_REPL_HISTORY="")则彻底禁用持久历史
控制历史条目数量:NODE_REPL_HISTORY_SIZE
默认保存 1000 条,太多易臃肿,太少又不够用。按需调整能兼顾性能与实用性。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 例如只保留最近 500 条:
NODE_REPL_HISTORY_SIZE=500 node - 该值必须是正整数,非数字或负数会被忽略,回退到默认 1000
- 配合自定义路径使用效果最佳,避免污染主目录
程序内调用 setupHistory 实现精细控制
如果你在代码中通过 repl.start() 启动自定义 REPL(比如嵌入到工具或 CLI 中),可用 setupHistory() 手动接管历史逻辑。
- 支持传入文件路径 + 回调函数,失败时能捕获错误并降级处理
- 示例:
const repl = require("node:repl");<br>const r = repl.start();<br>r.setupHistory("./my-history.log", (err) => {<br> if (err) console.error("历史加载失败", err);<br>}); - 比纯环境变量更灵活,适合需要加密存储、远程同步或格式转换的场景
避开已废弃的 NODE_REPL_HISTORY_FILE
旧版本 Node 使用 NODE_REPL_HISTORY_FILE,但它早在 v2.x 之后就被标记为废弃,且历史格式已从 JSON 切换为纯文本。继续使用会导致静默失效或兼容问题。
- 当前所有稳定版(v14+ 至 v26)均只认
NODE_REPL_HISTORY - 如果发现历史没保存,先检查是否误用了旧变量名
- 已有旧 history 文件会被自动迁移,但新配置务必用新变量










