如何解决Node.js中“ENXIO: no such device or address, open '/dev/tty'”错误?
解决Node.js中"ENXIO: no such device or address, open '/dev/tty'"错误
这个错误是因为prompt-sync需要直接访问终端(TTY)获取用户输入,但VS Code默认的代码运行方式(比如用Run Code插件直接执行却未关联交互式终端)无法提供TTY设备,从而触发报错。以下是几种可行的解决方法:
方法一:通过VS Code集成终端手动运行
- 打开VS Code集成终端(快捷键`Ctrl+``)
- 切换到代码所在目录:
cd /home/frankie/Desktop/JS - 用Node命令直接执行脚本:
此时终端会弹出输入提示,直接输入内容就能正常运行代码。node SkillsBuild.js
方法二:配置Run Code插件使用终端运行(若使用该插件)
如果你习惯点击Run Code按钮执行代码,调整插件设置即可:
- 打开VS Code设置(快捷键
Ctrl+,) - 搜索"Run Code Configuration"
- 找到并勾选"Run In Terminal"选项
之后点击Run Code按钮时,代码会在集成终端中运行,支持交互式输入。
方法三:改用命令行参数传递输入(非交互式场景)
如果不需要实时交互式输入,也可以通过命令行参数传入数据:
修改代码为:
const name1 = process.argv[2]; const name2 = process.argv[3]; console.log("Your full name is ", name1, name2);
运行时直接传入参数:
node SkillsBuild.js 你的名字 你的姓氏
内容的提问来源于stack exchange,提问作者Frankie Chan
相关产品推荐
相关产品推荐

