У меня небольшой проект с VS Code, TypeScript и NodeJS. Я использую tsc:watch
как задачу по умолчанию в VS C, чтобы быстро компилировать изменения в моих .ts-файлах. Если компиляция не удалась, отображаются ошибки. Все это прекрасно работает.
Проблема в том, что даже когда tsc:watch
находит ошибки, приложение все равно можно запустить / отладить с помощью узла (задача запуска). Я хочу предотвратить это.
Простым рабочим решением было бы использовать preLaunchTask
при запуске. json и установить для него задачу tsc:build
; запуск тогда остановился бы на ошибках. Однако это, очевидно, не имеет смысла, поскольку я таким образом теряю преимущество в скорости tsc:watch
.
Знаете ли вы какое-либо решение для этого?
Вот моя конфигурация:
запуск. json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}\\src\\app.ts",
"outFiles": [
"${workspaceFolder}/build/*.js"
],
"internalConsoleOptions": "openOnSessionStart",
"console": "internalConsole"
}
]
}
задач. json:
{
"version": "2.0.0",
"tasks": [
{
"type": "typescript",
"tsconfig": "tsconfig.json",
"option": "watch",
"problemMatcher": [
"$tsc-watch"
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"revealProblems": "onProblem",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
tsconfig. json:
{
"compilerOptions": {
"incremental": true,
"target": "es5",
"module": "commonjs",
"allowJs": false,
"sourceMap": true,
"outDir": "build/",
"rootDir": "src/",
"noEmitOnError": true,
"noErrorTruncation": true,
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
}