升级VSCode后使用Node 8运行服务时出现--inspect-brk错误
解决VSCode中babel-node调试报错
bad option: --inspect-brk=xxxx的问题 嘿,这个问题我之前也碰到过!升级VSCode后调试配置的参数传递逻辑可能变了,导致--inspect-brk参数被错误地直接传给node.exe,而不是通过babel-node正确转发。下面给你几个靠谱的解决办法:
方法一:调整launch.json的参数传递方式
问题核心是:babel-node需要通过--node-args来传递给Node.js的调试参数,而不是直接追加在命令后面。你需要修改你的launch配置,把调试参数放到runtimeArgs里:
{ "type": "node", "request": "launch", "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/babel-node", "name": "Launch Program", "program": "${workspaceFolder}/src/index.js", "cwd": "${workspaceRoot}", "runtimeArgs": [ "--node-args", "--inspect-brk=27776" ], "internalConsoleOptions": "openOnSessionStart" }
这样VSCode生成的命令就会变成:D:\herokuworkspace\server/node_modules/.bin/babel-node.CMD --node-args --inspect-brk=27776 src/index.js
babel-node会正确把--inspect-brk参数转发给Node.js,就不会报参数错误了。
方法二:更新babel相关依赖
如果你的@babel/node版本比较旧,可能和新版Node.js或VSCode调试器不兼容。执行下面的命令更新到最新稳定版:
npm install @babel/core @babel/node --save-dev
更新后再试试启动调试,大概率能解决版本不兼容的问题。
方法三:备选方案——先编译再调试
如果上面两种方法都不行,你可以先通过babel把源码编译到dist目录,再直接调试编译后的文件:
- 在package.json里添加编译脚本:
"scripts": { "build": "babel src --out-dir dist" }
- 执行
npm run build编译代码 - 修改launch.json直接调试dist目录下的index.js:
{ "type": "node", "request": "launch", "name": "Launch Compiled Program", "program": "${workspaceFolder}/dist/index.js", "cwd": "${workspaceRoot}" }
这个方法虽然麻烦一点,但胜在稳定,适合调试复杂项目。
内容的提问来源于stack exchange,提问作者David Faizulaev
相关产品推荐
相关产品推荐

