Node.js 无法使用VS代码调试器将断点设置为typescript

Node.js 无法使用VS代码调试器将断点设置为typescript,node.js,debugging,typescript,visual-studio-code,Node.js,Debugging,Typescript,Visual Studio Code,我的项目具有以下结构 .vscode | |____launch.json dist | |____server.js | |____server.js.map node_modules src | |____server.ts gulpfile.js package.json tsconfig.json 我的launch.json是 { "version": "0.2.0", "configurations": [ {

我的项目具有以下结构

.vscode
|    |____launch.json
dist
|    |____server.js
|    |____server.js.map
node_modules
src
|    |____server.ts
gulpfile.js
package.json
tsconfig.json
我的
launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach",
            "type": "node",
            "request": "attach",
            "port": 9229,
            "address": "localhost",
            "restart": false,
            "sourceMaps": true,
            "outFiles": ["${workspaceRoot}/dist/**/*.js"],
            "localRoot": "${workspaceRoot}/src/**/*.js",
            "remoteRoot": null,
            "protocol": "inspector"
        }
    ]
}
const gulp = require('gulp');
const ts = require('gulp-typescript');
const nodemon = require('gulp-nodemon');
const sourcemaps = require('gulp-sourcemaps');
const JSON_FILES = ['src/*.json', 'src/**/*.json'];

// pull in the project TypeScript config
const tsProject = ts.createProject('tsconfig.json');

gulp.task('scripts', () => {
    return tsProject.src()
        .pipe(sourcemaps.init())
        .pipe(tsProject())
        .js.pipe(sourcemaps.write("."))
        .pipe(gulp.dest('dist'));
});

gulp.task('watch', ['scripts'], () => {
    return gulp.watch('src/**/*.ts', ['scripts']);
});

gulp.task('assets', function () {
    return gulp.src(JSON_FILES)
        .pipe(gulp.dest('dist'));
});

gulp.task('nodemon', ['scripts', 'assets', 'watch'], () => {
    nodemon({
        script: './dist/bin/start.js',
        nodeArgs: ['--inspect']
    });
});

gulp.task('default', ['nodemon']);
{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "dist"
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}
我的
gulpfile.js

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach",
            "type": "node",
            "request": "attach",
            "port": 9229,
            "address": "localhost",
            "restart": false,
            "sourceMaps": true,
            "outFiles": ["${workspaceRoot}/dist/**/*.js"],
            "localRoot": "${workspaceRoot}/src/**/*.js",
            "remoteRoot": null,
            "protocol": "inspector"
        }
    ]
}
const gulp = require('gulp');
const ts = require('gulp-typescript');
const nodemon = require('gulp-nodemon');
const sourcemaps = require('gulp-sourcemaps');
const JSON_FILES = ['src/*.json', 'src/**/*.json'];

// pull in the project TypeScript config
const tsProject = ts.createProject('tsconfig.json');

gulp.task('scripts', () => {
    return tsProject.src()
        .pipe(sourcemaps.init())
        .pipe(tsProject())
        .js.pipe(sourcemaps.write("."))
        .pipe(gulp.dest('dist'));
});

gulp.task('watch', ['scripts'], () => {
    return gulp.watch('src/**/*.ts', ['scripts']);
});

gulp.task('assets', function () {
    return gulp.src(JSON_FILES)
        .pipe(gulp.dest('dist'));
});

gulp.task('nodemon', ['scripts', 'assets', 'watch'], () => {
    nodemon({
        script: './dist/bin/start.js',
        nodeArgs: ['--inspect']
    });
});

gulp.task('default', ['nodemon']);
{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "dist"
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}
我的
tsconfig.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach",
            "type": "node",
            "request": "attach",
            "port": 9229,
            "address": "localhost",
            "restart": false,
            "sourceMaps": true,
            "outFiles": ["${workspaceRoot}/dist/**/*.js"],
            "localRoot": "${workspaceRoot}/src/**/*.js",
            "remoteRoot": null,
            "protocol": "inspector"
        }
    ]
}
const gulp = require('gulp');
const ts = require('gulp-typescript');
const nodemon = require('gulp-nodemon');
const sourcemaps = require('gulp-sourcemaps');
const JSON_FILES = ['src/*.json', 'src/**/*.json'];

// pull in the project TypeScript config
const tsProject = ts.createProject('tsconfig.json');

gulp.task('scripts', () => {
    return tsProject.src()
        .pipe(sourcemaps.init())
        .pipe(tsProject())
        .js.pipe(sourcemaps.write("."))
        .pipe(gulp.dest('dist'));
});

gulp.task('watch', ['scripts'], () => {
    return gulp.watch('src/**/*.ts', ['scripts']);
});

gulp.task('assets', function () {
    return gulp.src(JSON_FILES)
        .pipe(gulp.dest('dist'));
});

gulp.task('nodemon', ['scripts', 'assets', 'watch'], () => {
    nodemon({
        script: './dist/bin/start.js',
        nodeArgs: ['--inspect']
    });
});

gulp.task('default', ['nodemon']);
{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "dist"
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}
我使用执行
gulp
npm run startdev
启动开发环境。因此,
nodemon
的默认gulp任务被运行,它将我的代码编译到
dist
文件夹中。我可以附加调试器,但每当我尝试设置断点时,它都会变灰,并显示一条消息
断点被忽略,因为找不到生成的代码(源代码映射问题?)。
我认为我的
launch.json
配置不正确。我错过了什么