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