在VSCode中调试Typescript

时间:2017-09-28 17:33:13

标签: angular typescript visual-studio-code vscode-settings

我看到很多关于VSCode的旧版本(v1.16.1 - 本文最新版本)或者不推荐使用的launch.json文件中的属性的信息。

我在GitHub论坛上尝试了无数的配置属性,一些较旧的信息(有些不可行,因为属性已经消失或被弃用)。尝试直接在VSCode中的Typescript代码中调试和命中断点。

目前,这是我的 tsconfig.json 文件:

    {
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/",
    "baseUrl": "src",
    "module": "commonjs",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "include": [
      "src/**/*.ts"
  ],
    "exclude": [
      "node_modules"
  ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

Visual Studio Code的 launch.json 文件是:

{
  "version": "0.2.0",
  "configurations": [
      {
          "name": "Launch Chrome",
          "type": "chrome",
          "request": "launch",
          "url": "http://localhost:3000/",
          "sourceMaps": true,
          "trace": true,
          "webRoot": "${workspaceRoot}/src",
          "userDataDir": "${workspaceRoot}/.vscode/chrome",
          "sourceMapPathOverrides": {
              "webpack:///src/*": "${webRoot}/*"
          }
      }
  ]
}

Chrome已打开,但标准" ...拒绝连接"页面显示: refused connection...

现在,只是尝试调试其中一个典型的"管理模板"。我可以通过终端完美地运行它:ng serve

然而,调试这个Angular应用程序正在逃避我。值得注意的是,我对Angular,Typescript和VSCode一般都是全新的。

1 个答案:

答案 0 :(得分:1)

您是否尝试将配置的outFiles属性指定为:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Chrome",
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/out/**/*.js"
            ]
        }
    ]
}

根据this docs,设置"sourceMaps": true告诉vscode将生成的*.js*.ts文件进行映射。此外,您需要设置outFiles属性,告诉vscode,如果这些*.js文件不在同一个目录中,它应该在哪里查找。

来自文档:

  

如果生成的(已转换的)JavaScript文件不在其源旁边但位于单独的目录中,则必须通过设置outFiles属性来帮助VS Code调试器找到它们。

相关问题