我使用的是Visual Studio代码1.17版,我的目标是调试current typescript文件.我有一个构建任务正在运行,所以我总是有一个相应的javascript文件,如下所示:

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

我已经try 了以下发布.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"
]}

推荐答案

outFiles的配置指向错误的目录.

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

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

vscode launch.json variable reference人中:

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

应该是你需要的目录.

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

您正在使用的配置将添加以下目录:

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

也就是说:

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

i、 e.根目录的路径在其中两次,使其成为无效路径.

If your .js files are on a different 100:只需使用该目录的路径即可.Typescript sourceMaps将完成其余部分.

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

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

Typescript相关问答推荐

如何正确修复TypScript 4.7到4.8升级中的TS 2345编译错误

动态判断TypScript对象是否具有不带自定义类型保护的键

将对象属性转换为InstanceType或原样的强类型方法

无法正确推断嵌套泛型?

未在DIST中正确编译TypeScrip src模块导入

被推断为原始类型的交集的扩充类型的交集

在列表的指令中使用intersectionObservable隐藏按钮

对象类型的TypeScrip隐式索引签名

基于泛型的条件接口键

类型脚本-处理值或返回值的函数

try 使Angular依赖注入工作

如何使用泛型函数参数定义类型脚本函数

重写返回任何

打字脚本错误:`不扩展[Type]`,而不是直接使用`[Type]`

如何避免TS2322;类型any不可分配给类型never;使用索引访问时

断言同级为true或抛出错误的Typescript函数

使用本机 Promise 覆盖 WinJS Promise 作为 Chrome 扩展内容脚本?

TS2532:对象可能未定义

为什么在 useState 中设置 React 组件是一种不好的做法?

创建通过删除参数来转换函数的对象文字的类型