VS代码:“由于未找到生成的代码而忽略断点”错误

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (135)

我在VS代码中调试TypeScript仍然有问题。我已经读过这个线程,但仍然无法打破我放置在TypeScript文件中的断点,击中.js文件中的断点都可以正常工作。

所以这里是我设立的最简单的“hello world”项目。

  • app.ts: var message: string = "Hello World"; console.log(message);
  • tsconfig.json { "compilerOptions": { "target": "es5", "sourceMap": true } }
  • launch.json { "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "node", "request": "launch", "program": "${workspaceRoot}/app.js", "stopOnEntry": false, "args": [], "cwd": "${workspaceRoot}", "preLaunchTask": null, "runtimeExecutable": null, "runtimeArgs": [ "--nolazy" ], "env": { "NODE_ENV": "development" }, "externalConsole": false, "sourceMaps": true, "outDir": null } ] }

我通过运行该tsc --sourcemap app.ts命令生成了js.map文件。

在所有这些步骤中,当我在该console.log(message);行上设置断点并从“调试”选项卡启动程序(F5)时,断点呈灰色显示“由于生成的代码未找到而导致忽略断点(源映射问题?)”。我附上了我所观察到的截图:

我做错了什么?

提问于
用户回答回答于

我在寻找一个类似问题的解决方案时遇到了这个问题。尽管与OP的问题不同,它可能会对其他人有所帮助。

上下文:我正在跟踪VisualStudio代码HelloWorld示例发现自己无法在断点停下来。

我通过改变.vscode/launch.json所以"sourceMaps": true属性在启动配置下设置(它在false上启动默认设置)。

用户回答回答于

设置"outFiles": ["${workspaceRoot}/compiled/**/*.js"],解决了我的问题。

这是我的 tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "target": "es6",
        "outFiles": ["${workspaceRoot}/compiled/**/*.js"],
        "mapRoot": "compiled"
    },
    "include": [
        "app/**/*",
        "typings/index.d.ts"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceRoot}/compiled/app.js",
            "cwd": "${workspaceRoot}",
            "outDir": "${workspaceRoot}/compiled",
            "sourceMaps": true
        }
    ]
}

扫码关注云+社区

领取腾讯云代金券