Ответ 1
Новая версия VSCode поддерживает Typescript 2, добавляет добавляет поддержку globs в tsconfig.json с опцией include
. См. http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
Я использую Visual Studio Code и имею довольно общую структуру проекта:
├── client/
│ ├── tsconfig.json
├── shared/
├── server/
│ ├── tsconfig.json
├── project.json
Два файла tsconfig имеют разные настройки (например, в под client/
целевые ES5, то под server/
нацелены на ES6).
Проблема заключается в том, что я хочу, чтобы общий каталог был включен в оба проекта. Я не могу сделать это с помощью tsconfig, потому что параметр exclude
не позволит мне включить папку, которая находится в более высоком каталоге, чем tsconfig.json, и используя files
, мне приходится постоянно хранить список файлов до поскольку он не поддерживает глобусы.
Обратите внимание, что я могу скомпилировать все, добавив общую папку в tsc, я хочу, чтобы IDE Visual Studio Code распознал общий код для intellisense и т.д.
Единственная возможность ждать filesGlob?
Новая версия VSCode поддерживает Typescript 2, добавляет добавляет поддержку globs в tsconfig.json с опцией include
. См. http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
Я ответил на это здесь: ответ расширения tsconfig
Суть ответа:
Вы можете сделать это, расширив свой базовый файл tsconfig.json:
только не исключайте каталоги в базовом файле tsconfig.json, и typScript должен иметь возможность разрешать ваши наборы для вас (знайте, что это так, используя node_modules/@types или модуль typings)
Например:
конфиги /base.json:
{
"compilerOptions": {
"noImplicitAny": true,
"strictNullChecks": true
}
}
tsconfig.json:
{
"extends": "./configs/base",
"files": [
"main.ts",
"supplemental.ts"
]
}
tsconfig.nostrictnull.json:
{
"extends": "./tsconfig",
"compilerOptions": {
"strictNullChecks": false
}
}
Единственная опция для ожидания файловGlob?
Лучший вариант:
tsconfig.json
И только пакет (используя что-то вроде webpack) файлы в client
(webpack возьмет ссылки на общие).Это рабочий процесс, который я использую здесь https://github.com/alm-tools/alm 🌹 (единственный tsconfig.json https://github.com/alm-tools/alm/blob/master/src/tsconfig.json)
Этот рабочий процесс также рассматривается в документах дизайна alm: https://basarat.gitbooks.io/alm/content/contributing/
Используйте один tsconfig.json
для рута. А затем расширьте его для каждого проекта (бэкэнд tsconfig.server.json
, tsconfig.webpack.json
интерфейс tsconfig.webpack.json
).
tsconfig.json
include: ['src']
чтобы гарантировать, что все файлы проверены на типизацию в IDE.tsconfig.server.json
exclude: ['src/app']
файлы tsconfig.server.json
интерфейсаtsconfig.webpack.json
: tsconfig.webpack.json
exclude: ['src/backend']
файлы бэкэндакак другой вариант связать комманд npm со следующим запуском
{
'start': '...',
'buildFront': 'tsc -p tsconfig.someName.josn'
}