Я вижу другие вопросы с той же проблемой, но я пробовал все другие решения, и ничего не помогало мне.
У меня есть приложение для машинописного Node, которое я пытаюсь отладить в VSCode.
Мой файл launch.json
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach",
"port": 5858,
"sourceMaps": true,
"outFiles": ["${workspaceRoot}/build/**/*.js"]
}
]
Это нормально для моего приложения. Я могу сделать паузу и продолжить, все работает правильно, но я не могу войти в код или установить точку останова.
Я запускаю свое приложение через gulp nodemon
nodemon({
script: 'build/server.js',
watch: 'src',
ext: 'ts',
tasks: ['clean', 'compile'],
exec: 'node --debug'
});
Консоль отводит труб
Отладчик прослушивает [::]: 5858
Теперь, когда я пытаюсь установить точку останова, он говорит
Неподтвержденная точка останова, точка останова игнорируется, поскольку сгенерированный код не найден (проблема с исходной картой?).
Обновление;
Я также пытался использовать элемент webRoot
, как предлагали другие посты вокруг. При вводе проверки жалуется, что Property webRoot is not allowed.
, я все равно пытался продолжить, но безрезультатно.
Я использую Node v6.11.5 и VS Code v1.23.0
Я видел в сообщениях людей, призывающих запустить тег .scripts для получения дополнительной информации, которую помогает решить, но когда я делаю это, набрав .scripts
в консоли отладки, он говорит: invalid expression: unexpected token .
Мой tsconfig.json
"compilerOptions": {
"outDir": "build",
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"typeRoots": ["node_modules/@types"]
},
Тем не менее, в папке сборки нет файлов .js.map
. Я запускаю сборку через gulp-typcript следующим образом
gulp.task('compile', () => {
tsProject = ts.createProject('tsconfig.json');
let tsResult = tsProject.src().pipe(ts());
return merge([
tsResult.dts.pipe(gulp.dest('build/definitions')),
tsResult.js.pipe(gulp.dest('build'))
]);
});
В соответствии с предложением я также добавил следующее задание глотка
gulp.task('jsMaps', function() {
gulp.src('build/**/*.js')
.pipe(sourcemaps.init())
.pipe(sourcemaps.write())
.pipe(gulp.dest('build'));
});
И подтвердил, что мои файлы сборки .js имеют встроенные исходные карты, похоже на //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc...........
, но я все еще получаю ту же ошибку при попытке установить точку останова.