节点和vs代码的异步调试问题

时间:2019-05-31 18:29:22

标签: node.js debugging visual-studio-code babeljs

我在VS代码中的断点一直在跳-我使用的是node.JS,当我运行调试器时,我的断点从第30行大约到达第130行,或者带有导出功能的文件底部。

我正在处理的项目是服务层,因此几乎都是异步的。

    async superspecficfunnamedoeshere(blah, accessToken) {
        console.log('example') 
Breakpoint goes on above line^
    Bunch more code goes here, here is the function etc , the breakpoint is just under the function declaration 
        }
    }

export thing from thing
^^ breakpoint moves to bottom export statement.

在该console.log行中放置一个断点仅会完全跳过整个功能,并转到底部的export语句。

这是我的launch.json-起初它在import语句中失败,直到我将其配置为与babel一起使用:

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "thing1",
      "program": "${workspaceFolder}/src/app.js",
      "protocol": "inspector",
            "runtimeArgs": [
                "--harmony",
            ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/babel-node",
      "envFile": "${workspaceFolder}/.env",
      "outFiles": [ "${workspaceFolder}/bin/**/*.js" ],
    }
  ]
}

最后这是我的babel配置

{ "env": {
    "development": {
    "sourceMaps": true,
    "retainLines": true
    }
    },
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "node": "current"
                }
            }
        ]
    ]
}

如何使调试异步功能正常工作?

我已经尝试过vs代码文档,并且对源映射的工作方式有些困惑。但是我已经在那儿实施了一些建议。

只有断点从console.log行移到文件末尾没有错误消息,断点更早(没有任何显示内容)

0 个答案:

没有答案