无法在 VS Code 中调试当前的打字稿文件,因为找不到相应的 JavaScript

新手上路,请多包涵

我正在使用 Visual Studio Code 1.17 版,我的目标是调试 当前的 打字稿文件。我有一个构建任务正在运行,所以我总是有一个相应的 javascript 文件,如下所示:

 src/folder1/folder2/main.ts
src/folder1/folder2/main.js

我尝试使用以下 launch.json 配置:

 {
  "type": "node",
  "request": "launch",
  "name": "Current File",
  "program": "${file}",
  "console": "integratedTerminal",
  "outFiles": [
    "${workspaceFolder}/${fileDirname}**/*.js"
  ]
}

但我收到错误: Cannot launch program '--full-path-to-project--/src/folder1/folder2/main.ts' because corresponding JavaScript cannot be found.

但是对应的JavaScript文件是存在的!

tsconfig.json:

 {
"compileOnSave": true,
"compilerOptions": {
    "target": "es6",
    "lib": [
        "es2017",
        "dom"
    ],
    "module": "commonjs",
    "watch": true,
    "moduleResolution": "node",
    "sourceMap": true
    // "types": []
},
"include": [
    "src",
    "test"
],
"exclude": [
    "node_modules",
    "typings"
]}

原文由 DauleDK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 359
2 个回答

您的 outFiles 的配置指向了错误的目录。

用这个替换你的 launch.json 配置将修复它:

 {
  "type": "node",
  "request": "launch",
  "name": "Current File",
  "program": "${file}",
  "console": "integratedTerminal",
  "outFiles": ["${fileDirname}/*.js"]
}

来自 vscode launch.json 变量参考

${fileDirName} 当前打开文件的目录名

应该是你需要的目录。

请注意,您还可以使用 "outFiles": ["${fileDirname}/**/*.js"] 来包含子目录。

您使用的配置添加了以下目录:

 "${workspaceFolder}/${fileDirname}**/*.js"

这转化为类似的东西:

 "/path/to/root/path/to/root/src/folder1/folder2/**/*.js"

即到根的路径在那里两次,使其成为无效路径。

如果您的 .js 文件位于不同的 outDir :只需使用此类目录的路径。 Typescript sourceMaps 将完成剩下的工作。

例如,如果您将 .js 文件放在 dist 目录中:

 "outFiles": ["${workspaceFolder}/dist/**/*.js"]

原文由 lucascaro 发布,翻译遵循 CC BY-SA 4.0 许可协议

问题可能出在您的地图文件上,而不是配置上。

在尝试任何其他操作之前,您需要确保您在启动配置中使用的路径是正确的。

您可以通过暂时用系统上的绝对路径替换路径来查看它是否有效。

如果它不起作用,您应该:

检查您的 tsconfig 并确保 mapRootcompilerOptions 下没有设置任何内容。这是官方文档必须说的:

指定调试器应该定位映射文件而不是生成位置的位置。如果 .map 文件将在运行时位于与 .js 文件不同的位置,请使用此标志。指定的位置将嵌入到 sourceMap 中,以指示调试器映射文件所在的位置。

你可以 在这里 阅读更多相关信息

在大多数情况下,您真的不想将其设置为任何内容。

另外,请确保

"sourceMap" :真`

compilerOptions 在 tsconfig.json 中设置,并且正在生成地图文件。

原文由 Aakash Malhotra 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题