1

当我在控制台中键入npm run debug时,得到:"Debugger listening on ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834"。当我用铬版去这个地址时,我看到的唯一的东西是"WebSockets request was expected"。我应该调整配置的哪些部分以使调试器工作?我正在使用最新版本的nodejs。无法为具有babel节点的节点启动VSCode调试器

的package.json脚本

"scripts": { 
    "prod": "webpack -p --env.production --progress", 
    "start": "babel-node --presets es2015 server/server.js", 
    "watch": "nodemon --exec npm run start", 
    "debug": "babel-node --presets es2015 server/server.js --inspect --debug-brk=3090" 
    } 

launch.json:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "name": "Launch via NPM", 
      "type": "node", 
      "request": "launch", 
      "runtimeExecutable": "npm", 
      "program": "${workspaceRoot}/server/server.js", 
      "restart": true, 
      "runtimeArgs": [ 
       "run-script", "debug" 
      ], 
      "port": 3090 
     }, 
     { 
      "type": "chrome", 
      "request": "launch", 
      "name": "Launch Chrome against localhost", 
      "url": "http://localhost:3090", 
      "webRoot": "${workspaceRoot}" 
     }, 
     { 
      "type": "chrome", 
      "request": "attach", 
      "name": "Attach to Chrome", 
      "port": 3090, 
      "webRoot": "${workspaceRoot}" 
     } 
    ] 
} 

文件结构:

├───.vscode 
├───js 
├───server 
│ ├───db 
│ ├───middleware 
│ ├───models 
│ ├───server.js 

enter image description here

回答

3

这似乎是一个问题nodejs库版本> = 7.0.0。

第一个解决方法:

一个小的解决方法在Chrome中打开此文件,开发工具是你的情况ws后链接的代码复制:

Debugger listening on ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834 

,并在其追加开发工具行的末尾与ws=链接,如下所示:

chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834 

这将使您能够使用chrome开发工具打开您的程序。 Link和解决问题给出here

第二种解决方法:

我尝试安装旧版本的节点即6.11.2和NPM 3.10并把它在Visual Studio代码一试,这是工作完美罚款没有任何问题。然而,用第一种方法显示的技巧,我仍然可以使用节点和npm的最新版本。

编辑:格式化我的答案,以便更好地了解

+0

谢谢。我安装了6.2版本的节点js,现在我从控制台获取了一个正确的URL。但是,chrome开发工具中的“sources”中不存在server.js文件。我的launch.json有问题吗? – Umbrella

+0

考虑到您已经从工作空间位置运行您的项目,您可以尝试更改'“程序”:“$ {workspaceRoot} /server/server.js”,使用'“program”:“$ {workspaceRoot}/server .js“,看看它是否在运行。 – Dhruvify

+0

不幸的是,“$ {workspaceRoot} /server.js”和“$ {workspaceRoot}”都不起作用。 – Umbrella