Flutter Version Manager (FVM): Flutter的版本管理終極指南

Flutter筆記
Flutter Version Manager (FVM)

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at: https://jclee95.blog.csdn.net
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-website:http://thispage.tech/notes/flutter/FVM

https://bbs.huaweicloud.com/blogs/422586


【介紹】:在Flutter開發過程中,管理不同版本的Flutter SDK可能是一個挑戰,尤其是當你同時在多個項目上工作,而這些項目又可能依賴于不同版本的Flutter。這里介紹一個解決方案:Flutter Version Manager (FVM)。

flutter-ljc


1. 概述

1.1 什么是FVM?

FVM是一個為Flutter開發的版本管理工具,它允許你在同一臺機器上安裝和使用多個Flutter版本。FVM提供了一種簡單的方式來切換項目之間的Flutter版本,無需重新下載或配置。

1.2 為什么要使用FVM?

總結起來,使用 Flutter Version Management(FVM)的主要優點包括版本隔離、快速切換和節省空間。

版本隔離

首先,版本隔離是 FVM 的一個關鍵優點。它允許為每個項目維護獨立的 Flutter 版本,從而避免了不同項目之間可能出現的版本沖突問題。由于不同的項目可能依賴于不同的 Flutter 版本,版本隔離確保了項目之間的獨立性,使得開發者可以根據項目的需要選擇合適的 Flutter 版本進行開發和測試,而無需擔心可能會因為版本不匹配而導致的問題。

快速切換

其次,FVM 提供了快速切換 Flutter 版本的能力。通過簡單的命令,開發者可以在不同的項目之間快速切換 Flutter 版本。這種靈活性使得開發者可以輕松地適應不同項目的需求,而無需手動管理不同版本的 Flutter SDK,大大提高了開發效率和便捷性。

最后,FVM 可以節省空間。由于 FVM 允許共享相同版本的 Flutter SDK,并且只需下載一次即可在多個項目中使用,因此可以避免重復下載相同版本的 Flutter SDK,從而節省了存儲空間。特別是對于那些需要頻繁切換 Flutter 版本或者同時在多個項目中使用 Flutter 的開發者來說,這種節省空間的優勢尤為顯著,可以有效地減少磁盤占用和下載時間。

節省空間

FVM 的主要優點包括版本隔離、快速切換和節省空間。這些優點使得開發者可以更加靈活地管理和使用 Flutter SDK,提高了開發效率和項目的可維護性。

2. FVM的安裝方法

FVM 提供了多種安裝方式,包括通過 pub、Homebrew 和 Chocolatey,讓開發者可以根據自己的喜好和操作系統選擇合適的安裝方式。不論是哪種方式,安裝完成后都可以方便地使用 FVM 來管理 Flutter 版本,提高開發效率和便捷性。

2.1 通過pub安裝

首先是通過 pub 安裝。運行下面的命令:

dart pub global activate fvm

這個命令會從 Dart 包管理器 pub 獲取最新版本的 FVM,并將其安裝到全局環境中。一旦安裝完成,你就可以在任何地方使用 FVM 命令了,從而方便地管理 Flutter 版本。

2.2 通過Homebrew安裝

其次是通過 Homebrew 安裝。如果你使用 macOS,并且習慣使用 Homebrew 進行軟件包管理,那么可以使用以下命令來安裝 FVM:

brew tap leoafarias/fvm
brew install fvm

這個命令會將 FVM 添加到 Homebrew 的源中,并安裝到你的系統中。通過 Homebrew 安裝的方式,你可以享受到 Homebrew 提供的便捷性和管理優勢。

2.3 通過Chocolatey安裝

最后是通過 Chocolatey 安裝。對于 Windows 用戶,可以使用 Chocolatey 進行軟件包管理,并通過以下命令安裝 FVM:

choco install fvm

這個命令會從 Chocolatey 的軟件源中獲取最新版本的 FVM,并將其安裝到你的系統中。通過 Chocolatey 安裝,你可以快速方便地在 Windows 環境中使用 FVM,從而實現對 Flutter 版本的管理和切換。

2.4 在IDE中使用FVM

FVM還可以與IDE(如Android Studio)集成,通過配置Flutter SDK路徑為.fvm/flutter_sdk,可以確保IDE使用FVM管理的Flutter版本。

3. FVM的基本用法解析

安裝了Flutter Version Manager (FVM)之后,你將能夠通過一系列命令來管理Flutter SDK的不同版本。這些命令不僅讓版本管理變得簡單,還支持高度自定義的項目構建配置。下面是如何使用這些基本命令的詳細指南。

3.1 安裝Flutter版本

要安裝特定版本的Flutter SDK,可以使用fvm install命令。這個命令允許你指定一個特定的版本號或者渠道名(如stable, beta, dev, master)。

fvm install 3.16.9

或者,如果你想安裝beta渠道的最新版本:

fvm install beta

3.2 切換Flutter版本

安裝了Flutter的不同版本后,你可以使用fvm use命令為當前項目指定要使用的Flutter版本。這個命令會在項目目錄下創建一個.fvm文件夾,其中包含指向所選Flutter版本的符號鏈接。

為當前項目使用特定版本:

fvm use 2.2.0

如果你想將某個版本設置為全局默認版本,可以添加–global標志:

fvm use 2.2.0 --global

3.3 列出已安裝版本

要查看已經通過FVM安裝的所有Flutter版本,可以使用fvm list命令。這個命令會列出所有已安裝的版本,并且顯示當前項目正在使用的版本。

fvm list

在這里插入圖片描述

3.4 刪除Flutter版本

如果你想刪除已經安裝的某個Flutter版本,可以使用fvm remove命令。這個命令會從你的機器上移除指定的Flutter版本,釋放空間。

fvm remove 2.2.0

3.5 項目Flavors

FVM支持項目flavors,這意味著你可以為不同的構建配置指定不同的Flutter版本。這在你需要為不同的環境(如開發、測試和生產)使用不同版本的Flutter時非常有用。

要為特定flavor指定Flutter版本,可以在fvm use命令中使用–flavor選項:

fvm use 2.2.0 --flavor dev

這將為開發flavor設置Flutter版本為2.2.0。

通過這些基本命令,FVM提供了一種靈活而強大的方式來管理Flutter項目的版本。無論是在多個項目之間切換,還是為不同的構建配置指定特定版本,FVM都能簡化這一過程。

3.6 配置和高級功能

FVM提供了一些配置選項,例如設置緩存路徑,以及一些高級功能,如使用自定義Flutter版本或特定的git提交。這些功能使得FVM成為一個強大而靈活的工具,適用于各種復雜的開發場景。

4. 結論

FVM是一個強大的工具,可以幫助Flutter開發者更有效地管理不同版本的Flutter SDK。無論你是在多個項目之間切換,還是需要測試即將發布的Flutter版本,FVM都能提供幫助,使得版本管理變得簡單和高效。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/711864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711864.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711864.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL-Labs靶場“26-28”關通關教程

君衍. 一、二十六關 基于GET過濾空格以及注釋報錯注入1、源碼分析2、繞過思路3、updatexml報錯注入 二、二十六a關 基于GET過濾空格注釋字符型注入1、源碼分析2、繞過思路3、時間盲注 三、二十七關 基于union及select的過濾單引號注入1、源碼分析2、繞過思路3、聯合查詢注入4、…

laravel cache

一、基本操作 Cache::put() 創建緩存(鍵,值,有效期(單位是秒)) Cache::get() 獲取緩存 Cache::add() 只會在緩存項不存在的情況下添加數據到緩存,如果數據被成功返回 true,否則&…

Android在后臺讀取UVC攝像頭的幀數據流并推送

Android在后臺讀取UVC攝像頭的幀數據流并推送 添加UvcCamera依賴庫 使用原版的 saki4510t/UVCCamera 在預覽過程中斷開可能會閃退,這里使用的是 jiangdongguo/AndroidUSBCamera 中修改的版本,下載到本地即可。 https://github.com/jiangdongguo/AndroidU…

Rust學習筆記:基礎工具和基本名詞

不要用共享內存來通信,要用通信來共享內存 rustup: 一個用于管理 Rust 版本和相關工具的命令行工具 rustup update cargo: Rust 的構建系統和包管理工具 構建代碼下載依賴庫并構建下載庫 crate: 代碼包/庫 trait: 特性、功能 ///: 生成 html 格式的 doc&#…

CELL文獻速遞 | 了解微生物如何在社會中傳播并塑造我們的健康

谷禾健康 當人還是嬰兒時,會從父母那里得到微生物;和寵物玩耍或接觸時,也會從寵物那得到微生物;有時候人沒有直接和動物玩耍,只是接觸動物的糞便,甚至其他環境的微生物,都會交換微生物... 這些其…

智慧治水丨計訊物聯水利RTU助推小型水庫出險加固工程建設與管理

日前,水利部印發《關于健全小型水庫除險加固和運行管護機制的意見》(以下簡稱《意見》),健全小型水庫除險加固和運行管護常態化機制,提高小型水庫安全管理水平。《意見》提出了“十四五”的兩大管理機制,通…

adb下載安裝及使用教程

adb下載安裝及使用教程 一、ADB的介紹1.ADB是什么?2.內容簡介3.ADB常用命令1. ADB查看設備2. ADB安裝軟件3. ADB卸載軟件4. ADB登錄設備shell5. ADB從電腦上發送文件到設備6. ADB從設備上下載文件到電腦7. ADB顯示幫助信息 4.為什么要用ADB 二、ADB的下載1.Windows版…

Flutter GetX 之 暗黑模式

我們緊接上篇文章,今天繼續講解一下強大的 GetX 的另一個功能,就是 暗黑模式 ,在iOS 13開始蘋果的應用慢慢的都開始適配 暗黑模式,andr。oid 也慢慢的 開始跟進,截止到目前,商店的大部分應用都已經完成了 暗黑模式 的適配。 原生開發為我們提供對應的 API,那么Flutter呢…

機器學習相關概念及術語總結

目錄 1.機器學習2.監督學習3.無監督學習4.線性回歸5.邏輯回歸 1.機器學習 機器學習的定義:一個計算機程序可從經驗E(Experience)中學習如何完成任務T(Task),并且隨著經驗E的增加,性能指標P&…

Python中reduce函數和lambda表達式的學習

reduce函數將一個數據集合(鏈表,元組等)中的所有數據進行下列操作:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function 函數…

【論文精讀】DINOv2

摘要 學習與特定任務無關的預訓練表示已經成為自然語言處理的標準,這些表示不進行微調,即可在下游任務上明顯優于特定任務模型的性能。其主要得益于使用無監督語言建模目標對大量原始文本進行預訓練。 遵循NLP中的這種范式轉變,以探索計算機視…

iSlide插件2024免費版(包含52 個PPT設計輔助功能,9 大在線資源庫,以及超 50 萬 專業)

一、功能介紹 iSlide是一款專為PowerPoint設計的插件,它集合了眾多設計與效率提升的功能,幫助用戶更快速、更美觀地制作演示文稿。 主題設計:提供多種設計主題,用戶只需一鍵應用,即可為幻燈片賦予統一的視覺風格。智…

每次提出一個bug都讓測試重現,描述得那么清楚,自己操作下不會嗎?

一說到測試和開發的關系,你一定會想到一個詞“冤家”。 開發的工作就是按照PM的設計將產品最終造出來,而測試則是在開發已完成的工作里糾錯。so,測試的工作會讓開發很不爽,人之常情,誰都不喜歡自己的勞動成果被別人挑…

react路由基礎

1.目錄 A. 能夠說出React路由的作用 B. 能夠掌握react-router-dom的基本使用 C. 能夠使用編程式導航跳轉路由 D. 能夠知道React路由的匹配模式 2.目錄 A. React路由介紹 B. 路由的基本使用 C. 路由的執行過程 D. 編程式導航 E. 默認路由 F. 匹配模式 3.react路由介紹 現代…

開源項目:圖像分類技術在醫療影像分析中的應用與實踐

一、引言 在當今快速發展的醫療行業中,數字醫療正逐漸成為提升醫療服務質量和效率的關鍵力量。本項目旨在通過整合醫藥電商、遠程問診、慢病管理等多維度服務,為消費者和企業提供全面的醫療解決方案。項目的核心在于運用先進的圖像分類技術,以…

回歸測試:在不斷變化的環境中確保軟件的穩定性

軟件開發是一個復雜的過程,需要不斷變化和更新以滿足客戶不斷變化的需求,但它們也可能產生新問題或導致舊問題重新出現。這就是回歸測試的用武之地——它是在不斷變化的環境中確保軟件穩定性的重要組成部分。 在這篇文章中,我們將深入探討什…

第40期 | GPTSecurity周報

GPTSecurity是一個涵蓋了前沿學術研究和實踐經驗分享的社區,集成了生成預訓練Transformer(GPT)、人工智能生成內容(AIGC)以及大語言模型(LLM)等安全領域應用的知識。在這里,您可以找…

基于springboot + vue實現的前后端分離-在線旅游網站系統(項目 + 論文)

項目介紹 本旅游網站系統采用的數據庫是MYSQL ,使用 JSP 技術開發,在設計過程中,充分保證了系統代碼的良好可讀性、實用性、易擴展性、通用性、便于后期維護、操作方便以及頁面簡潔等特點。 技術選型 后端: SpringBoot Mybatis 數據庫 : MyS…

Qt 使用windows注冊表保存設置

重點: 1.在構造函數中初始化,確認注冊表中的一個目錄 QApplication::setOrganizationName("WWB-Qt");QApplication::setApplicationName("samp7_5"); 只要使用下面語句定義變量setting QSettings setting 表示setting指向注冊表目…

UE5 文字游戲(1) 僅UI截圖轉換為texture2d(適用于window端)

目錄 需求 思路 1.截圖并讀取到本地 2.本地讀取圖片并轉換為紋理2d 效果展示 找了好多的解決辦法,都不管用。這個算是折中的。 需求 將當前的用戶控件(ui)截圖下來,并賦值到一個texture2d上。 我的需求:文字游戲…