VS Code中使用Node.js的prompt-sync时,提示无法输出到终端?
解决prompt-sync无提示且程序挂起的问题
问题根源
VS Code默认的调试控制台不支持交互式输入,要是你用调试模式启动程序,prompt-sync的输入请求没法正常显示,导致程序看似没反应,实则在后台等输入。另外也可能是终端配置没匹配上。
具体解决办法
直接用集成终端运行程序
打开VS Code的集成终端(别用调试控制台),执行命令:node 你的文件名.js这样就能看到输入提示,输入内容回车后程序会正常往下走。
配置调试模式支持交互输入
要是习惯用调试功能,修改.vscode/launch.json配置:
找到"console"字段,把值改成"integratedTerminal"或者"externalTerminal",别用默认的"internalConsole"。示例配置如下:{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${file}", "console": "integratedTerminal" } ] }保存后重启调试,就能在集成终端里看到输入提示了。
确认模块安装和引入无误
先确保在项目根目录执行过安装命令:npm install prompt-sync代码里的引入语句
const prompt = require("prompt-sync")({sigint: true});没有拼写错误,sigint: true这个参数是允许用Ctrl+C终止程序,本身没问题。
验证方式
调整运行方式后,执行代码,终端会显示Please enter your name: ,输入名字回车后,程序会继续执行(如果有后续逻辑的话),不会再一直挂着。
内容的提问来源于stack exchange,提问作者Sheldon Marvel
相关产品推荐
相关产品推荐

