Debugging 无法调试VSCode中的Typescript

Debugging 无法调试VSCode中的Typescript,debugging,typescript,visual-studio-code,Debugging,Typescript,Visual Studio Code,这是我的launch.json "version": "0.2.0", "configurations": [ { "type": "node", "name": "Launch Server", "request": "launch", "program": "${workspaceRoot}/server/src/app.ts", "cwd"

这是我的launch.json

    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "name": "Launch Server",
            "request": "launch",
            "program": "${workspaceRoot}/server/src/app.ts",
            "cwd": "${workspaceRoot}",
            "env": {
                "NODE_ENV": "dev"
            },
            "skipFiles": [
                "node_modules/**/*.js"
            ],
            "outFiles": [
                "${workspaceRoot}/dist/server/src/*.js"
            ],
            "sourceMaps": true,
            "stopOnEntry": true,
            "console": "internalConsole"
        },
"program": "${file}"
我的源文件夹:

My dist文件夹:

我得到的错误是:

Cannot launch program '/Dev/myapp/server/src/app.ts'; setting the 'outFiles' attribute might help.
如果我将“program”属性更改为“program”:“${workspaceRoot}/dist/server/src/app.js”,它可以工作,但我正在调试传输的javascript,而不是typescript。显然,与.map文件的传输正在工作,出了什么问题

tsconfig.json

{
  "compilerOptions": {
    "allowJs": false,
    "baseUrl": "",
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es6",
      "dom"
    ],
    "mapRoot": "./",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "./dist",
    "sourceMap": true,
    "target": "es6",
    "typeRoots": [
      "node_modules/@types"
    ]
  },
  "exclude": [
    "web",
    "dist",
    "node_modules"
  ]
}

配置中缺少
src
文件夹:

"outFiles": [
    "${workspaceRoot}/dist/server/src/*.js"
],

同时将
tsconfig.json中的
mapRoot
设置为
/dist/
。当前它将搜索
/server/src
文件夹中的源地图,而不是
/dist
在我的例子中,我在launch.json中

    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "name": "Launch Server",
            "request": "launch",
            "program": "${workspaceRoot}/server/src/app.ts",
            "cwd": "${workspaceRoot}",
            "env": {
                "NODE_ENV": "dev"
            },
            "skipFiles": [
                "node_modules/**/*.js"
            ],
            "outFiles": [
                "${workspaceRoot}/dist/server/src/*.js"
            ],
            "sourceMaps": true,
            "stopOnEntry": true,
            "console": "internalConsole"
        },
"program": "${file}"
当按F5/Ctrl+F5时,它显然试图在节点中运行ts文件 将其更改为

"program": "${workspaceFolder}/${fileBasenameNoExtension}.js"
允许我同时运行活动ts和js文件


同时启动tsc-watch build任务以动态编译js文件

很抱歉,一开始不知道该文件是如何丢失的。.即使在outfiles中有/src文件夹,我也会遇到同样的错误。您可以发布您的
tsconfig.json
?为什么
mapRoot
tsconfig.json
中设置为
您的源地图在
disc/server/s中rc/
对吗?视情况而定,有4个应用程序共享同一个tsconfig..all output to dist/{appName}/src就是这样!调试typescript现在可以工作了!如果您想编辑此答案,我将选择它作为解决方案,谢谢!