使用
"@angular/cli": "^1.0.0"
@angular/cli
忽略 tsconfig.json
即使编辑或删除了 tsconfig.json
,该项目仍能成功编译。
为什么会这样?
使用
"@angular/cli": "^1.0.0"
@angular/cli
忽略 tsconfig.json
即使编辑或删除了 tsconfig.json
,该项目仍能成功编译。
为什么会这样?
$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/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"
。尽管看起来很蠢,但 angular-cli 的 tsconfig.json
文件位于 src/tsconfig.app.json
内。
编辑器(如 vscode)将使用根目录下的 tsconfig.json
文件。
src/tsconfig.app.json
,为什么要有两个不同的配置文件? - Ahmed Musallamsrc/tsconfig.app.json
将是更具体的配置文件。但是,本回答的目的并不是改变他们的做法,而是指出正确的配置文件。 - zurfyx
tsconfig.app.json
的自定义名称,您是否知道是否可以从根目录手动编译 tsc 命令以模拟 ng build? - kampsj