Я пытаюсь настроить задачи кода VS для стандартных команд Angular CLI, таких как ng build
, ng serve
, ng test
. Цель состоит в том, чтобы получить список проблем, которые я могу легко преодолеть, когда я запускаю команду CLI. В настоящее время я запускаю эти команды непосредственно из терминала VS Code, но иногда бывает сложно перейти к ошибке, поскольку не все ссылки на источники в терминале являются интерактивными. Список проблем с кодом VS был бы более удобным. Интересно, стандартного сопоставителя до сих пор нет, несмотря на то, что Angular настолько популярен, или я его пропускаю?
Я пытался создать настраиваемое сопоставление, но оно выглядит сложнее, чем я ожидал. Angular CLI выводит ошибки машинописного текста, а также ошибки html и scss, поэтому задача должна содержать несколько сопоставителей. Я не могу использовать стандартный $tsc
matcher, потому что выход Angular CLI немного отличается от вывода компилятора TS - первая ошибка начинается с ERROR in
, и эта ошибка не распознается $tsc
matcher.
Вот, например, задача ng test
, но она не работает должным образом:
- Когда я перехожу к первой ошибке, нажимая
F8
, список проблем иногда очищается. Я предполагаю, что сопоставитель конфликтует с цсервером, который обнаруживает ошибку при открытии файла. - Иногда сопоставитель пропускает некоторые ошибки.
// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [{
"label": "test",
"type": "shell",
"command": "ng test",
"problemMatcher": [{
"base": "$tsc",
"fileLocation": [
"relative",
"${workspaceRoot}/src"
],
"pattern":[{
"kind": "ts",
"regexp": "^(?:ERROR in )?(.*):(\\d+):(\\d+) - (error|warning|info) TS(.*): (.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"code": 5,
"message": 6
}]
}],
"group": {
"kind": "test",
"isDefault": true
}
}]
}