工作空間的配置文件用途:
angular.json:為工作區(qū)中的所有項目指定CLI的默認配置,包括CLI要用到的構(gòu)建、啟動開發(fā)服務器和測試工具的配置項。
package.json:配置工作空間中的所有項目可用的npm依賴包。
package-lock.json:提供npm客戶端安裝到node_modules的所有軟件包的版本信息。
tsconfig.json:工作空間中各個項目的默認TypeScript配置。
src/:根目錄的源文件
src下的子文件夾:
app/:包含應用邏輯和數(shù)據(jù)的組件文件
assets/:包含要在構(gòu)建應用時應該按原樣復制的圖像和其他的靜態(tài)資源文件。
environments/:包含特定目標環(huán)境的構(gòu)建配置選項,默認情況下,有一個無名的標準開發(fā)環(huán)境和一個生產(chǎn)環(huán)境。
index.html:當有人訪問你的站點時,提供服務的主要html頁面,cli會在構(gòu)建應用的時候自動添加所有的js和css文件。
main.ts:應用的主要切入點,默認用JIT編譯器編譯應用,然后引導應用的根模塊(AppModule)在瀏覽器中運行。
應用配置文件
tsconfig.app.json:應用專屬的typescript配置。
angular.json文件結(jié)構(gòu)
version:該配置文件的版本
newProjectRoot:用于創(chuàng)建新工程的位置
defaultProject:當命令中沒有指定參數(shù)時,要使用的默認工程名。
schematics:用于定制ng generate子命令在本工作空間中的默認選項。
projects:對于工作區(qū)中的每個項目都會包含一個子分區(qū),子分區(qū)中是每個項目的配置項。
項目配置選項
每個項目都有下面的頂級配置屬性
"my-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {}
}
其中:
root:該項目的根文件夾,相對于工作區(qū)文件夾的路徑。初始應用的值為空,因為它位于工作區(qū)的頂層。
sourceRoot:該項目源文件的根文件夾
projectType:“application”或者“l(fā)ibrary”
prefix:angular所生成的選擇器的前綴字符串
schematics:為該項目自定義ng generate子命令的默認選項
architect:為項目的各個構(gòu)建器目標配置默認值。
architect是指cli用來根據(jù)所提供的配置執(zhí)行復雜任務(如編譯和測試運行)的工具。
architect中配置屬性:
"architect": {
"build": { },
"serve": { },
"e2e" : { },
"test": { },
"lint": { },
"extract-i18n": { },
"server": { },
"app-shell": { }
}
其中
build:為ng build命令的選項配置默認值
serve:會覆蓋構(gòu)建默認值,并為ng serve命令提供額外的服務器默認值。除了ng build命令的可用選項外,還增加了與開發(fā)服務器有關(guān)的選項。
build中的配置屬性:
builder:用于構(gòu)建此目標的構(gòu)建工具的npm包,默認是
@angular-devkit/build-angular:browser,它使用的是webpack打包器。
options:包含構(gòu)架選項的默認值,當沒有指定命名的備用配置時使用。
configurations:定義并命名針對不同目標的備用配置,為每個命名配置都包含一節(jié),用于設置該目標環(huán)境的默認選項。默認情況下,會定義一個production配置,ng build命令會使用這個配置下的--prod選項,這里的production配置會設置各種默認值來優(yōu)化應用,例如打包文件、最小化多余空格等。你可以定義和命名適用于你的開發(fā)工程的其他備用配置,例如dev,test。
具體參考:https://angular.cn/guide/workspace-config#build-configs