[Angular #3]認識 Angular CLI 產生的專案目錄結構

EllaYang
Angular 的學習筆記
7 min readJun 16, 2019

前一篇文章中,我們透過 Angular CLI 的方式( 使用 ng new 指令),快速容易的建立一個新的專案,並且擁有一致性的專案架構;專案頂層包含本專案設定檔案、根應用設定檔案以及一些包含根應用原始檔和測試檔案子資料夾。

ng new my-app (new 名 n)
[小提醒] my-app 為專案名稱,可自行命名
透過 ng new 指令所產生的專案目錄結構

[重要] 應用/主程式檔案( src/ )

src/內包含所有專案主要開發的原始程式碼,以及透過 Angular CLI 所產生的檔案,都會存放在這個目錄下。

  • app/ — 放置整個網頁開發中,所需要的程式邏輯、資料、樣式、測試,以及 Angular 的元件(Component)、模版(Template)、模組(Module)、服務(Service)。
  • app/app-routing.module.ts設定 Router(路由器);指當瀏覽器的 URL 發生變化時,Router(路由器)會依據查詢到的對應 Route(路由)來決定顯示哪個元件。
  • app/app.component.css根元件 AppComponent 的樣式檔(CSS)
  • app/app.component.html 根元件 AppComponent 的 HTML 範本檔
  • app/app.component.spec.ts 根元件 AppComponent 的單元測試定義檔
  • app/app.component.ts 根元件 AppComponent 的主程式
  • app/app.module.ts AppModule 的根模組,為應用程式的 NgModule 定義檔; 每當你於專案中,新增元件(Component)時,該檔案將會自動新增宣告該項元件(Component)。
  • assets/放置網站影像和靜態資源檔案(Image、CSS、Fonts...)
  • environments/放置環境變數的設定檔;專案建立時,預設會有一個無名的標準開發環境(environments.ts)和一個生產(“prod”)環境(environments.prod.ts)
  • environments/environments.ts 標準開發環境變數設定檔(production:false
  • environments/environments.ts 生產環境變數設定檔(production: true)
  • favicon.ico — 出現在瀏覽器網址列、書籤、頁籤的小 icon 圖檔
  • index.html — 預設為網站首頁,也是 SPA 唯一一頁。
  • main.ts —整個網頁應用程式的主要切入點,用於 Angular CLI 編譯與打包時。
  • polyfills.ts為瀏覽器支援提供了膩子(polyfill)指令碼,載入 Angular 程式之前,會預先加載完成。
  • style.css — 整個網站共用的 CSS 樣式檔
  • test.ts單元測試的主入口點;通常不需要編輯這個檔案。

[重要]專案設定檔案 — 1

  • src/ 專案主要開發的所有程式碼,以及透過 Angular CLI 所產生的檔案,都會存放在這個目錄下。
  • package.json [重要]設定專案所需的 npm 套件依賴,主要存放相關套件及應用程式的資訊;如應用程式名稱、版本等。 詳細請參閱 npm官方文件
[小知識] package.json 檔案中,dependencies 與 devDependencies 的區別
dependencies 內列出的插件,是執行應用程式時所必備的;如專案項目需要依賴 jQuery,需將其寫入 dependencies 中,當專案完成時進行打包,才會一併打包進專案文件中。
devDependencies 內列出的插件,只用於本機開發環境;比如 glup、webpack 構建工具或是 karma 單元測試工具,這些都只有在開發中才會使用。

以上是我們在 Angular 專案開發中,比較「重要」或是「常用」到的檔案,請務必要記得;至於下面「專案設定檔案 — 2」是方便大家更加深入了解 Angular 的各檔案用途,如果覺得多也可以暫時忽略!

專案設定檔案 — 2

  • .git Git 版本控制;在 Angular CLI 建立新專案,預設會自動產生。
[指令補充] 建立新專案時,不想加入 Git 版本控制:
ng new my-app --skip-git (--skip-git 別名 -sg)
  • node_modules/ — 本專案所使用的套件,並使用 npm install 安裝的相關檔案,所放置的位置;在 Angular CLI 建立新專案時,會自動產生。
[指令補充] 建立新專案時,不加入 npm 套件依賴(不執行任何 npm/yarn 安裝指令):
ng new my-app --skip-install (--skip-install 別名 -si)
  • .editorconfig — 幫助開發者在不同的編輯器和 IDE 之間定義和維護一致的編碼樣式。詳情請參閱 EditorConfig 官網
  • angular.json Angular CLI 設定檔,包括 Angular CLI 要用到的建構、啟動開發伺服器和測試工具的設定。詳情請參閱 Angular 官網Mike 的 Angular 大師之路說明。
  • browserslist 設定各種前端工具之間共享的目標瀏覽器和 Node.js 版本; Angular 的編譯器,會依照此檔案所設定的,將 CSS 與 JavaScript 編譯成可支援指定瀏覽器的內容。 詳情請參閱 GitHub 上的瀏覽器列表
[小知識] 如欲,專案支援 IE 9-11
請在 browserslist 檔案內,刪除下列句子中的 not
刪除前
not IE 9-11 # For IE 9-11 support, remove 'not'.
刪除後
IE 9-11 # For IE 9-11 support, remove 'not'.
「#」後面的文字為註解,可保留或刪除
  • karma.conf.js Karma 的設定檔;Karma 是一套自動化單元測試工具, 以 Jasmine 為測試框架,當偵測到我們的程式碼改變時,即會進行測試。
[指令補充] 進行單元的測試:
ng test (test 別名 t)

E2E 測試檔案

  • e2e/ — E2E 測試(End-to-end Testing)資料夾;存放 E2E 測試原始檔,以及測試專屬的設定檔案。Angular 是使用 Protractor 來進行 E2E 測試, 測試相關之設定,存放於該目錄之下的protractor.conf.js檔案。
[指令補充] 進行 end to end 測試:
ng e2e (e2e 別名 e)

--

--

EllaYang
Angular 的學習筆記
0 Followers

前端開發菜鳥,目前正在學習 Angular,歡迎各位前輩指教~~