Angular-cli игнорирует tsconfig.json
С помощью
"@angular/cli": "^1.0.0"
@angular/cli
игнорируемых tsconfig.json
Проект компилируется просто отлично, редактирование / удаление tsconfig.json
Это почему?
2 ответа
Каким бы глупым это ни казалось, tsconfig.json
файл находится внутри src/tsconfig.app.json
Корень tsconfig.json
будет использоваться редакторами (такими как vscode).
Причина, по которой ваш проект компилируется без $ROOT/tsconfig.json
в том, что @angular/cli
поддерживает несколько приложений в корневом каталоге; ваше (одиночное) приложение компилируется с $ROOT/src/tsconfig.app.json
и ваш набор тестов с $ROOT/src/tsconfig.spec.json
, Корень tsconfig.json
применяется ко всем приложениям в каталоге. Удаление это просто удалил глобальный tsconfig
это может потенциально использоваться со многими приложениями.
Для более ясного понимания этого, посмотрите на .angular-cli.json
, Одно свойство, app
, поддерживает массив из нескольких приложений, но конфигурация по умолчанию предназначена только для одного приложения. Как описано в @angular/cli/lib/config/schema.json
, app
поддерживает "свойства различных приложений в этом проекте".
"app": [{
"root": "src"
...
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json"
}]
Используя этот массив, вы можете иметь столько приложений Angular, сколько вам нужно, каждое со своими собственными настройками TypeScript.
Дополнительно, @angular/cli
Команды поддерживают несколько приложений с --app
флаг. ng serve --app foo
будет служить foo
приложение, тогда как ng serve --app bar
будет служить bar
приложение. Этот флаг также работает с ng build
, ng e2e
, ng eject
, ng test
, а также ng xi18n
, Чтобы добавить новое приложение к существующему $ROOT
каталог, использовать ng new
,
Корень tsconfig
не только для редакторов кода и tslint
, Это относится ко всем приложениям в вашем проекте. Как это работает под капотом, довольно сложно, как ясно из исходного кода, где есть множество файлов json, которые имеют такие строки, как "extends": "../../../tsconfig.json"
,