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

MiaHsu
5 min readSep 15, 2021

--

學習目標:了解 Angular 專案結構,各檔案用途及開始學習 Angualr 時可能會修改的設定

  • 如何成功啟動一個 angular 專案
  • 此學習筆記使用 Mac 環境、Angular 11

Angular 專案檔案結構

有標註黃底的是初期開發時比較常用到的部分。

當我們成功啟動一個 Angular 專案後,會得到上圖的資料夾結構,以下就一一說明(下面的順序會依據 vscode 上排列,可以對照著看比較方便哦

  • e2e/ :E2E 測試(End-to-End)的程式碼要擺放的位置這邊就不詳述。
補充資料:[一次搞懂單元測試、整合測試、端對端測試之間的差異]
  • node_modules/ :此專案相關依賴的套件。
  • src/:開發中所有程式碼、資源全部都在這裡。
  • 🌟 src/app :包含整個網頁應用程式的 Module、Component、Service。
  • 🌟 src/assets :靜態資源資料夾。例如:圖片、多語系 json 檔等。
  • src/environments :環境變數設定檔資料夾。在實際開發時,會有許多環境變數(API Url、)會因為專案情境(內部測試機、客戶測試機、正式機)而有所不同。此資料夾一開始會包含兩個檔案:
    - environment.ts:提供引用時的 import 基底檔案
    - environment.prod.ts:預設提供給正式環境用的檔案
[補充資料]1. [Angular #7 Environments Switch]2. [Angular] 環境檔使用方式
  • src/favicon.ico :瀏覽器的頁籤會出現的小 icon。
  • src/index.html:整個網頁應用程式的首頁與 root 頁面,也是 SPA 唯一的 HTML
  • src/main.ts:主程式入口點,通常不會動到此檔案。
  • src/polyfills.ts:與瀏覽器支援度有關的設定檔案。當應用程式需同時符合 IE 或舊版的瀏覽器時,會使用 Polyfill 來填充缺少的 HTML5/ JS APIs。
  • src/styles.css:整個網頁應用程式共用的樣式檔。
  • src/test.ts:類似 `main.ts` 不過是用在測試檔案上,通常不會動到此檔案。

🌟 src/app 底下根元件模組

Angular 建立的根元件模組

  • 🌟 app-routing.module.ts:根元件模組路由定義檔。
  • app.component.html:根元件模組範本檔。
  • app.component.scss:根元件模組樣式檔。
  • app.component.spect.ts:根元件模組單元測試定義檔。
  • 🌟 app.component.ts:根元件模組主程式。
  • 🌟 app.module.ts:應用程式的 NgModule 定義檔(要匯入的模組、元件等)。

與設定相關的檔案

  • .browserslistrc:與瀏覽器支援度有關的設定檔案。這隻設定檔會調整以下部分:
  1. css 自動前綴(Autoprefixer)。
  2. Babel 支援度。
  3. PostCSS Preset Env 支援度。
  4. obsolete-webpack-plugin 支援度。
  • .editorconfig:定義編碼樣式。
[補充資料]1. 官方文件2. EditorConfig 快速使用指南
  • .gitignore:設定 Git 版本控制要忽略哪些檔案,不進入版控
  • 🌟 angular.json:Angular CLI 設定檔,詳細設定可參考 [Angular 大師之路] Day 02 — 更加理解 Angular CLI 之 Monorepo 應用
  • .karma.conf.js:Angular 內建的單元測試工具設定檔(官方文件
  • package-lock.json:紀錄實際安裝的套件來源及版本號
  • package.json:一個應用程式所有資訊,包含:應用程式名稱、版本、相依的相關套件、腳本等等,通常我們要了解一個專案時,第一步就是來看這個檔案。
  • README.md:專案說明文件,是以 Markdown 的語法來撰寫。
  • tsconfig.app.jsonTypeScript 設定檔,繼承了 tsconfig.json 的設定,可參考 TypeScript 設定
  • tsconfig.jsonTypeScript 設定檔,其他與 TypeScript 相關的設定檔都會繼承這個基本設定。
  • tsconfig.spec.json:「測試」時使用到的 TypeScript 設定檔。
  • tslint.json:TSLint 設定檔,可參考 TSLint 設定

在一開始學習時,看到這麼多檔案其實心裡蠻慌的,太多不懂的名詞與套件,但其實大部分的檔案都跟設定有關,起初只需要有基本的概念即可,使用 Angular 到現在,主要都是更動文章中打星號的檔案,因此都等到需要用到時再深入研究。

參考資料

--

--

MiaHsu
MiaHsu

Written by MiaHsu

每件事都是最好的安排,成為更好的自己

No responses yet