Как сделать код Visual Studio проверять весь проект на наличие ошибок?

Я использую VS Code для разработки TypeScript/JavaScript. Когда я открываю файл, он проверяет этот файл на наличие ошибок. Проблема в том, что если я рефакторинг (например, я перемещаю какой-то общий код в новое место или меняю имя), он не покажет мне ошибки, возникшие до тех пор, пока я не открою файл с проблемой.... поэтому, если я хочу сделать обширный рефакторинг, я должен открыть каждый файл, чтобы он мог проверить файл на наличие ошибок.

Как я могу заставить VS Code проверять весь проект на наличие ошибок, не открывая каждый файл один за другим вручную?

Ответ 1

Догадаться. Обратите внимание, что этот ответ специфичен для TypeScript, который я использую. Вот:

Убедитесь, что машинописный шрифт установлен глобально (я просто установил локально локально): npm install -g typescript

Затем в VS Code нажмите Shift + Ctrl + B. Если у вас нет заданного задания, он спросит, чего вы хотите. Я выбрал машинопись и файл tasks.json будет выглядеть так:

{
    "version": "0.1.0",
    "command": "tsc",
    "isShellCommand": true,
    "args": ["-p", "."],
    "showOutput": "silent",
    "problemMatcher": "$tsc"
}

Затем нажатие Shift + Ctrl + B (или Shift + Command + B в macOS) проверит весь проект на наличие проблем, и они будут опубликованы в вашей панели "Проблемы".

Ответ 2

Для самой последней версии tasks.json это правильный json, после устаревших версий 1.14. Создайте это как /.vscode/tasks.json

{
    "version": "2.0.0",
    "command": "tsc",
    "type": "shell",
    "args": [
        "-p",
        "."
    ],
    "presentation": {
        "reveal": "silent"
    },
    "problemMatcher": "$tsc"
}

Ответ 3

Если вы не хотите устанавливать TypeScript по всему миру, вы можете сделать следующее:

  1. Добавьте скрипт запуска validate-typescript в ./package.json. --noEmit означает, что компилятор не будет генерировать файлы JavaScript.
{
  "scripts": {
    "validate-typescript": "tsc --noEmit"
  }
}
  1. Пусть VSCode знает о скрипте запуска в /.vscode/tasks.json.
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "npm",
      "script": "validate-typescript",
      "problemMatcher": [
        "$tsc"
      ]
    }
  ]
}
  1. Для запуска задач нажмите клавишу F1 и выберите "Запустить задачу", а затем "npm: validate-typescript".

Ответ 4

Как только вы откроете свой проект в vs code, откройте терминал vs code и запустите:

node_modules/.bin/tsc --noEmit