Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用“附加”调试Typescript节点应用程序_Node.js_Typescript_Debugging_Visual Studio Code_Vscode Debugger - Fatal编程技术网

Node.js 使用“附加”调试Typescript节点应用程序

Node.js 使用“附加”调试Typescript节点应用程序,node.js,typescript,debugging,visual-studio-code,vscode-debugger,Node.js,Typescript,Debugging,Visual Studio Code,Vscode Debugger,我正在构建一个具有以下文件夹结构的完整堆栈样板项目: boilerplate-app |---server |---src |---dist |---node_modules |---client |---.vscode |---launch.json 服务器是一个节点项目,我希望能够使用vscode的“附加”模式进行调试,因为我已经在使用各种构建脚本。其中一个将构建在src中找到的源代码,并将其放入dist 我面临的问题是,尽管我可以附加调试器,但我不能将断点附

我正在构建一个具有以下文件夹结构的完整堆栈样板项目:

boilerplate-app
 |---server
   |---src
   |---dist
   |---node_modules
 |---client
 |---.vscode
   |---launch.json
服务器是一个节点项目,我希望能够使用vscode的“附加”模式进行调试,因为我已经在使用各种构建脚本。其中一个将构建在
src
中找到的源代码,并将其放入
dist

我面临的问题是,尽管我可以附加调试器,但我不能将断点附加到我的
src
文件上——它们都被标记为“未绑定”。但是,我可以在
列表
文件上设置断点,但这并不理想,因为当我更改
src
文件时,会删除并重新生成

launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Server attach",
            "type": "node",
            "protocol": "inspector",
            "request": "attach",
            "processId": "${command:PickProcess}",
            "restart": true,
            "stopOnEntry": false,
            "localRoot": "${workspaceFolder}/server/src",
            "remoteRoot": "/Users/username/Documents/Development/express-app-boilerplate/server/src",
            "sourceMaps": true,
            "outFiles": ["${workspaceFolder}/server/dist/**/*.js"],
            "cwd": "${workspaceFolder}/server/src"
        }
    ]
}
有些事情我不确定:

  • ${workspaceFolder}
    在本例中,我认为是指
    样板应用程序
    文件夹,因为它是我打开的根文件夹
  • 我不清楚
    localRoot
    /
    remoteRoot
    cwd
    的含义,或者它们之间的区别-文档是最小的,似乎依赖于intellisense显示的单句摘要
tsconfig.json:

{
    "compilerOptions": {
        "lib": ["es2020"],
        "module": "CommonJS",
        "target": "es2020",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true,
        "noImplicitAny": true,
        "moduleResolution": "node",
        "sourceMap": true,
        "outDir": "dist",
        "rootDir": "src",
        "baseUrl": ".",
        "allowJs": true,
        "mapRoot": "dist"
    },
    "include": ["src"],
    "exclude": ["node_modules"]
}
我相当肯定这是正确的


我需要做什么才能让它工作?谢谢

我似乎无法删除此内容,但我解决了问题:

launch.json更改:

已从中删除
src

  • “cwd”:“${workspaceFolder}/server”
  • “localRoot”:“${workspaceFolder}/server”
  • “remoteRoot”:“/Users/username/Documents/Development/express应用程序样板/服务器”
tsconfig.js更改:

  • 已删除
    mapRoot