Node.js Can';t为具有babel节点的节点启动VSCode调试器

Node.js Can';t为具有babel节点的节点启动VSCode调试器,node.js,visual-studio-code,package.json,babel-node,babel-cli,Node.js,Visual Studio Code,Package.json,Babel Node,Babel Cli,当我在控制台中键入npm run debug时,我得到:“在ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834上侦听的调试器”。当我在chrome中访问这个地址时,我唯一看到的是“WebSockets请求是预期的”。我应该调整配置的哪些部分以使调试器工作?我正在使用最新版本的nodejs package.json脚本 "scripts": { "prod": "webpack -p --env.production --pro

当我在控制台中键入
npm run debug
时,我得到:
“在ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834上侦听的调试器”
。当我在chrome中访问这个地址时,我唯一看到的是
“WebSockets请求是预期的”
。我应该调整配置的哪些部分以使调试器工作?我正在使用最新版本的nodejs

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 

这似乎是nodejs库版本>=7.0.0的问题

第一个解决方法:

使用开发工具在chrome中打开此文件的一个小解决方法是在
ws
之后复制链接代码

Debugger listening on ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834
并将其附加到dev tools链接行的末尾,使用
ws=
,如下所示:

chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834
这将使您能够在chrome开发工具中打开程序。给出了该问题的联系和解决方法

第二种解决方法:

我尝试安装旧版本的node,即6.11.2和npm 3.10,并在visual studio代码中进行了尝试,它工作得非常好,没有任何问题

然而,使用上面第一种方法中显示的技巧,我仍然能够使用node和npm的最新版本


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

谢谢。我安装了6.2版本的NodeJS,现在我从控制台获得了一个正确的URL。然而,在chrome开发工具的“源”中不存在server.js文件。my launch.json有什么问题吗?考虑到您已经在工作空间位置运行您的项目,您是否可以尝试将“${workspaceRoot}/server/server.js”和“${workspaceRoot}/server.js”更改为“${workspaceRoot}/server.js”和“${workspaceRoot}/server.js”,并查看它是否正在运行。既不是“${workspaceRoot}/server.js”也不是“${workspaceRoot}”工作,很不幸,好的。当您尝试将launch.json中的“${workspaceRoot}/server/server.js”与“${code>”程序“${file}”一起更改时,会发生什么情况?这里的
“程序”:“${file}”
是全局启动配置,自动获取正在运行的项目的文件名。您不必像之前在launch.json中那样特别提及它。尝试替换如上所示的代码,并告诉它的工作是否尝试了所有的组合,我总是看到上面的屏幕截图。