Avatar ·

Ошибка tsconfig.json: Build: No inputs were found in config file — как исправить?

Всем привет! Я новичок в TypeScript и использую Visual Studio 2015 с ASP.NET Core. Создал проект, добавил файл `tsconfig.json` в корень, но при компиляции получаю ошибку: > Build: No inputs were found in config file. Specify 'include' or 'files' property, or remove 'rootDir' to allow all files in the 'src' folder to be used. Вот мой `tsconfig.json`: ```json { "compilerOptions": { "target": "es5", "module": "commonjs", "rootDir": "src", "outDir": "dist", "strict": true } } ``` В папке `src` у меня есть файл `app.ts`: ```typescript function greet(name: string): string { return `Hello, ${name}!`; } console.log(greet("World")); ``` Но TypeScript не видит этот файл. Я пробовал перезагружать студию, удалять и создавать `tsconfig.json` заново — не помогает. Подскажите, что я делаю не так? Почему компилятор не находит входные файлы, хотя они есть в папке `src`? Заранее спасибо! <<>>

Причина ошибки

Ошибка возникает, потому что TypeScript не знает, какие именно файлы компилировать. В вашем конфиге указан rootDir: "src", но не заданы свойства include или files. Компилятор видит директорию src, но не понимает, что нужно обрабатывать все файлы внутри неё. По умолчанию TypeScript ищет .ts файлы только в корне проекта, если не указано иное.

Решение 1: Добавить свойство include

Самый простой способ — явно указать, какие файлы или папки нужно включить в компиляцию. Добавьте в tsconfig.json свойство include:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "rootDir": "src",
    "outDir": "dist",
    "strict": true
  },
  "include": ["src/**/*"]
}

Шаблон "src/**/*" означает: взять все файлы (любого расширения, но TypeScript отфильтрует только .ts, .tsx и .d.ts) из папки src и всех её подпапок. После этого ошибка исчезнет, а файл app.ts будет скомпилирован в dist/app.js.

Решение 2: Использовать свойство files

Если у вас мало файлов и вы хотите явно перечислить их, используйте files:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "rootDir": "src",
    "outDir": "dist",
    "strict": true
  },
  "files": ["src/app.ts"]
}

Этот способ неудобен для больших проектов, так как каждый новый файл нужно добавлять вручную.

Решение 3: Убрать rootDir

Если вы уберёте rootDir, TypeScript будет компилировать все .ts файлы из папки проекта (и подпапок), но структура выходных файлов может стать неожиданной. Обычно это не рекомендуется, но как временное решение — сработает.

Дополнительные советы для Visual Studio 2015

  • Перезагрузите проект: После изменения tsconfig.json иногда нужно выгрузить и загрузить проект заново (правой кнопкой по проекту → Unload Project → Reload Project).
  • Проверьте версию TypeScript: В VS 2015 может быть установлена устаревшая версия. Убедитесь, что используется TypeScript 2.0+ (через Tools → Extensions and Updates).
  • Очистите кэш: Удалите папки bin и obj в проекте, затем пересоберите решение.
  • Используйте exclude: Если в include попадают лишние файлы (например, node_modules), добавьте exclude:
{
  "compilerOptions": { ... },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

После этих изменений ошибка No inputs were found должна исчезнуть. Если нет — проверьте, что файл app.ts действительно находится в папке src и имеет расширение .ts, а не .txt или другое.

<<>>

Альтернативный подход: настройка через Visual Studio UI

В Visual Studio 2015 можно настроить компиляцию TypeScript без ручного редактирования tsconfig.json. Это особенно полезно, если вы не хотите разбираться в конфигурации.

  1. Щёлкните правой кнопкой по проекту в Solution Explorer → выберите Properties.
  2. Перейдите на вкладку TypeScript Build.
  3. Убедитесь, что Compile on save включён.
  4. В разделе General установите ECMAScript version (например, ES5).
  5. В поле Root directory of TypeScript files укажите src (или оставьте пустым для корня проекта).
  6. Нажмите OK.

Если после этого ошибка остаётся, попробуйте удалить tsconfig.json из проекта — Visual Studio может использовать свои настройки, игнорируя конфиг. Но учтите: без tsconfig.json вы потеряете гибкость настройки (например, strict mode).

Также проверьте, что файл app.ts добавлен в проект (отображается в Solution Explorer). Если он лежит в папке, но не включён в проект, VS его не увидит. Добавьте его через Add → Existing Item.

Этот метод подходит для быстрого старта, но для серьёзных проектов рекомендую использовать tsconfig.json с явным include — это даёт больше контроля и переносимости между средами.