通过 TSC 的 VS Code TypeScript SourceMaps 不工作

Posted

技术标签:

【中文标题】通过 TSC 的 VS Code TypeScript SourceMaps 不工作【英文标题】:VS Code TypeScript SourceMaps Via TSC Not Working 【发布时间】:2016-09-11 05:58:26 【问题描述】:

谁能指出我为什么不能在我的任何 TS 文件中打断点的正确方向?该应用程序是一个 Node.JS 应用程序,并使用 TSC 进行了转译。下面是入口app.ts文件的示例:

./src/app.ts

import 'reflect-metadata';

import kernel from './ioc'
import  IServer  from './utilities/abstract/IServer'

let server = kernel.get<IServer>("IServer");
server.start();

./src/app.js

"use strict";
require('reflect-metadata');
var ioc_1 = require('./ioc');
var server = ioc_1.default.get("IServer");
server.start();

//# sourceMappingURL=app.js.map

./src/app.js.map

"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":";AAAA,QAAO,kBAAkB,CAAC,CAAA;AAE1B,oBAAmB,OACnB,CAAC,CADyB;AAG1B,IAAI,MAAM,GAAG,aAAM,CAAC,GAAG,CAAU,SAAS,CAAC,CAAC;AAC5C,MAAM,CAAC,KAAK,EAAE,CAAC"

./tsonfig.json


    "compilerOptions": 
        "target": "es5",
        "module": "commonjs",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "sourceMap": true
    ,
    "exclude": [
        "node_modules",
        "typings/main",
        "typings/main.d.ts"
    ]

./.vscode/launch.json


    "version": "0.2.0",
    "configurations": [
        
            "name": "Launch",
            "type": "node",
            "request": "launch",
            "program": "$workspaceRoot/src/app.js",
            "stopOnEntry": true,
            "args": [],
            "cwd": "$workspaceRoot",
            "runtimeExecutable": null,
            "runtimeArgs": [
                "--nolazy"
            ],
            "env": 
                "NODE_ENV": "development"
            ,
            "externalConsole": false,
            "sourceMaps": true,
            "outDir": null
        
    ]

当我运行启动配置时,它会在 JS 文件而不是 TS 文件中设置断点。 TS 文件中的断点也给了我以下工具提示:

我真的希望我的 TS 和 JS 驻留在不同的目录中,并使用 Gulp 进行转译,但希望首先让这个简单的设置工作。只是 VS Code 中的 TS 断点非常脆弱还是我做错了什么?

【问题讨论】:

【参考方案1】:

将launch.json添加到根文件夹,配置如下


    "version": "0.1.0",
    "configurations": [
        
            "name": "Launch type",
            "type": "node",
            "program": "src/app.ts",
            "stopOnEntry": false,
            "sourceMaps": true,
            "outDir": "bin"
        
    ]

这里是参考链接https://code.visualstudio.com/Docs/editor/debugging#_launch-configurations

【讨论】:

抱歉没用。我没有 bin 文件夹。正如我所提到的,我正在尝试在拆分之前将其全部放在一个目录中。

以上是关于通过 TSC 的 VS Code TypeScript SourceMaps 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Vs Code 自动编译TS

Vs Code搭建 TypeScript 开发环境

Visual Studio Code 总是使用旧版本的 tsc

在 VS Code 和 TypeScript 中调试 Azure DevOps 自定义任务时如何设置输入变量

rxjs 模块在 VS2019 中找不到,但在 tsc cli 中找到

尝试(和失败)在 VSC 终端中使用 tsc 在 Visual Studio Code 中运行(成功安装)TypeScript 编译器