# FVM 介紹 - 使用新版本 Flutter 可能會導致應用無法編譯或某些套件不相容。 - 在尋找降級 Flutter 版本時,可能會發現這並不簡單。 - 在不同 Flutter 頻道之間切換需要重新下載整個 Flutter SDK,十分繁瑣。 - **Flutter 版本管理(FVM)** 允許同時擁有多個 Flutter 版本並能快速切換。 # FVM 的好處 - 確保開發團隊使用相同版本的 Flutter。 - 可以方便地切換不同版本,適合多頻道開發。 - 在專案中硬編碼使用的 Flutter 版本,降低版本衝突風險。 # 安裝 FVM - 可以透過多種方式安裝,建議使用 Dart 的 `pub` 安裝: - `dart pub global activate fvm` - 安裝後,運行 `fvm` 命令以確認安裝成功。 # 基本命令 - **使用特定版本**:`fvm use <version>`,可指定專案所需的 Flutter 版本。 - **列出已安裝版本**:`fvm list`,顯示已安裝的 Flutter 版本。 - **查看可用版本**:`fvm releases`,顯示所有可安裝的 Flutter 版本。 - **安裝版本**:`fvm install <version>`,下載並安裝指定版本。 # 專案配置 - 在專案中運行 `fvm use <version>`,會生成 `.fvm` 資料夾與 `config.json` 文件。 - 將 Flutter SDK 資料夾添加至 `.gitignore`,避免提交不必要的 SDK 文件。 # IDE 配置 - 在 VS Code 的 `settings.json` 中設定 Flutter SDK 路徑為 `.fvm/flutter_sdk`,以便 IDE 使用 FVM 管理的版本。 - 運行 Flutter 命令時使用前綴 `fvm`,例如 `fvm flutter run`。 # 進階配置 - **搜尋排除**:將 FVM 資料夾添加至搜尋排除設定,避免不必要的檔案干擾。 - **全局版本**:使用 `fvm global <version>` 設定全局使用的 Flutter 版本。 - **指定頻道**:可限制 FVM 只使用特定頻道(如 stable 或 beta)。 # Flavor 支持 - FVM 支持為不同的應用環境(如開發、測試、正式)設定不同的 Flutter 版本。 - 使用 FVM 可以在 CI/CD 流程中自動切換至指定版本。 # 其他功能 - 支持使用自定義的 Flutter 分支或版本。 - 持續改進,未來將有更多功能。 # Terminology - **Flutter**:一個開源的UI軟體開發工具包,用於構建跨平台的應用程式,使用單一代碼庫支持iOS、Android、網頁和桌面應用。 - **FVM (Flutter Version Management)**:一個工具,用於管理多個Flutter版本,允許開發者在不同項目間輕鬆切換Flutter版本。 - **Channel**:Flutter版本的發佈管道,主要有穩定(stable)、開發(dev)、測試(beta)等,提供不同穩定性和功能集的版本。 - **SDK (Software Development Kit)**:軟體開發工具包,包含開發所需的工具、庫和文件,以支持應用程序的開發。 - **Pub**:Dart的包管理器,用於安裝和管理Dart和Flutter中的第三方套件。 - **CLI (Command Line Interface)**:命令行介面,用於通過文本命令與計算機進行交互,通常用於運行腳本或管理系統設定。 - **Config File**:配置文件,用於保存應用程序或工具的設定和選項,讓用戶可以自定義其行為。 - **Versioning**:版本控制,管理不同版本的軟體,通常用於追蹤變更和修復問題。 - **Dependency**:依賴關係,指一個軟體包依賴於另一個包的情況,確保正確運行所需的庫和資源可用。 - **Git Ignore**:Git忽略文件,用於指定不需要被版本控制系統追蹤的文件或資料夾,保持代碼庫整潔。 - **Flavors**:在Flutter中,表示不同版本的應用程式,如開發、測試和生產環境,可以配置以使用不同的版本或設定。 - **Global Version**:全局版本,指定系統中所有項目所共用的Flutter版本,便於統一開發環境。 - **Local Version**:本地版本,特定於某個項目的Flutter版本,允許不同項目使用不同版本。 - **Command Prefix**:命令前綴,通常用於在命令行中添加工具或程序的名稱,以指示執行的上下文,例如使用`fvm flutter`執行Flutter命令。 - **Installation Path**:安裝路徑,指軟體或工具被安裝到系統中的具體位置。 - **Cache Directory**:快取目錄,用於存儲已安裝的版本和文件,以便快速訪問和管理不同的Flutter版本。 - **Environment Configuration**:環境配置,設置開發環境中的參數,以確保軟體正常運行,包含路徑和變數設定。 - **Continuous Delivery**:持續交付,是一種軟體開發方法,確保軟體隨時可以穩定地發佈到生產環境。 - **Releases**:發佈版本,Flutter的正式版本,包含新的功能、修復和性能改進,通常會被標記為穩定或測試版本。 - **Alias**:別名,用於創建命令的簡短版本,方便用戶在終端中快速執行常用命令。