Можно ли заставить tsc очищать outDir перед компиляцией?

Да, в TypeScript есть способ заставить компилятор (tsc) очищать директорию для скомпилированных файлов (outDir) перед началом компиляции. Это можно сделать через флаг компилятора --clean или --build --clean.

При использовании флага --clean, tsc будет удалять все файлы в директории указанной в outDir, перед тем как скомпилировать проект. Это очень полезно, так как позволяет сохранять директорию для скомпилированных файлов в актуальном состоянии и предотвращает возможные конфликты при компиляции.

Например, если у нас есть следующая структура проекта:

- src
  - index.ts
- dist
  - index.js
  - index.d.ts

Мы можем добавить следующую команду в package.json для запуска компиляции с очисткой outDir:

{
  "scripts": {
    "build": "tsc --clean"
  }
}

Теперь, при выполнении команды npm run build, tsc будет удалять все файлы из директории dist, а затем компилировать проект и помещать скомпилированные файлы в эту директорию.

Если у вас есть несколько проектов с общей зависимостью и вы хотите выполнить компиляцию для всех проектов, используйте флаг --build в сочетании с --clean. Например:

tsc --build --clean

Это выполнит компиляцию всех проектов в текущем рабочем каталоге, очищая outDir перед компиляцией.

Важно отметить, что флаг --clean предназначен только для использования с флагом --build. Если вы используете --outDir без --build, то --clean будет игнорироваться.