Как использовать несколько файлов 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.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'
}