VisualStudioCode:launch.json启动JavaScript文件而不是TypeScript文件,即使



我有以下目录:

.vscode
-- launch.json
-- tasks.json
build
-- script
-- -- main.js
-- -- main.js.map
node_modules
src
-- script
-- -- main.ts
-- typings
-- tsd.json
gulpfile.js

当然还有其他东西,比如自述文件和node_modules的内容等等。

无论如何,我的launch.json看起来如下:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "debug",
        "type": "node",
        "request": "launch",
        "program": "${workspaceRoot}/src/script/main.ts",
        "stopOnEntry": true,
        "runtimeArgs": [
            "--nolazy"
        ],
        "env": {
            "NODE_ENV": "development"
        },
        "preLaunchTask": "build",
        "outDir": "${workspaceRoot}/build/script/",
        "sourceMaps": true
    },
    {
        "name": "attach",
        "type": "node",
        "request": "attach",
        "port": 5858
    }
]}

和我的gulpfile,用于构建如下的打字脚本:

gulp.task('typescript', function() {
gulp.src('./src/script/**/*.ts')
    .pipe(ts({
        noImplicitAny: true,
        target: 'ES6',
        module: 'commonjs',
        removeComments: true
    }))
    .pipe(sourcemaps.init())     
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('./build/script/'));
});

现在回到我的问题:

正如标题中所说,VS Code启动调试器,它实际上可以工作,但它调试的是main.js文件,而不是main.ts文件。

据我所知,我必须将main.ts设置为程序参数,将包含js文件的目录设置为outDir

目前我有点不知所措,因为我觉得我的配置是正确的,但出于某种原因,很明显,事实并非如此。

也许有人能看到我犯的错误:)

我也遇到了类似的问题。首先,尝试从launch.json.执行js文件

然后,您还需要在项目的根目录中有一个tsconfig.json文件,即使您使用gump进行编译也是如此。此文件有一个"sourceMap"参数,该参数需要设置为true,以便能够使用源映射调试ts文件。

tsconfig.json文件示例:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}

最新更新