Как использовать несколько файлов tsconfig?

я использую код Visual Studio и имею довольно распространенную структуру проекта:

├── client/
│   ├── tsconfig.json
├── shared/
├── server/
│   ├── tsconfig.json
├── project.json

два файла tsconfig имеют разные настройки (например, один под client/ цели ES5, один под server/ цели ES6).

проблема в том, что я хочу, чтобы общий каталог был включен в оба проекта. Я не могу сделать это с помощью tsconfig, поскольку exclude опция не позволит мне включить папку, которая находится в более высоком каталоге, чем tsconfig.json и использование files Я должен постоянно обновлять список файлов, поскольку он не поддерживает глобусы.

обратите внимание,что я могу скомпилировать отлично, добавив общую папку в tsc, что я хочу, чтобы Visual Studio Code IDE распознала общий код для intellisense и т. д.

является единственным вариантом, чтобы ждать filesGlob?

4 ответов


Я ответил на это вот: ответ расширения tsconfig

суть ответа:

вы можете сделать это, расширив свою базу tsconfig.файл json:

расширение tsconfig

просто не исключайте каталоги в базе tsconfig.json и typescript должны иметь возможность разрешать ваши типизации для вас (знайте, что это верно, используя node_modules/@types или модуль typings)

для пример:

конфиги/базы.в JSON:

{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true
  }
}

tsconfig.в JSON:

{
  "extends": "./configs/base",
  "files": [
    "main.ts",
    "supplemental.ts"
  ]
}

tsconfig.nostrictnull.в JSON:

{
   "extends": "./tsconfig",
   "compilerOptions": {
     "strictNullChecks": false
   }
}

это единственный вариант, чтобы ждать filesGlob?

лучший вариант:

  • просто используйте один tsconfig.json и только bundle (используя что-то вроде webpack) файлы client (webpack подберет ссылки на shared).

Это рабочий процесс, я использую здесь https://github.com/alm-tools/alm (один tsconfig.формат JSON https://github.com/alm-tools/alm/blob/master/src/tsconfig.json)

этот рабочий процесс также рассматривается в документах ALM design:https://basarat.gitbooks.io/alm/content/contributing/


новая версия VSCode поддерживает Typescript 2, Добавьте это добавляет поддержку глобусов в tsconfig.json с . См.http://www.typescriptlang.org/docs/handbook/tsconfig-json.html


как другой вариант привязать npm comamnd со следующим запуском

{
   'start': '...',
   'buildFront': 'tsc -p tsconfig.someName.josn'
}