Как предотвратить запуск VS Code Code приложения TypeScript / NodeJS, если были ошибки в ts c: watch? - PullRequest
0 голосов
/ 31 января 2020

У меня небольшой проект с 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  
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...