Flutter - 如何在不每次下载flutter和dart sdk的情况下切换flutter频道
Posted
技术标签:
【中文标题】Flutter - 如何在不每次下载flutter和dart sdk的情况下切换flutter频道【英文标题】:Flutter - How to switch flutter channel without downloading flutter & dart sdk every time 【发布时间】:2020-08-16 18:09:35 【问题描述】:目前我正在尝试使用 Flutter 网络,为此我需要在 Flutter 主频道上工作。但是,然后我需要处理我的其他项目。在他们身上,我正在研究颤振稳定频道。
但是,每次我使用“flutter channel stable”或“flutter channel master”命令切换我的flutter频道时,每次都会重新下载sdk和其他工具。
目前我已经下载了stable flutter sdk和stable dart sdk。
我已将它们移动到“FlutterSDK”文件夹中,其中包含另外两个文件夹“stable”和“master”。这两个文件夹都包含稳定的flutter & dart sdk。
但是,它会不断重新下载资源。我做错了什么?
有人可以帮忙吗?
谢谢。
【问题讨论】:
在不同位置安装两个版本,只需切换PATH
env变量
假设我打开了一个项目,我目前在稳定频道上。那么如果我想转到主频道我该怎么办?同样在项目设置中,我应该指向哪个颤振 sdk?我的稳定文件夹中的 Flutter sdk 或我的主频道中的 Flutter sdk?您也可以简单地回答您的问题。
您需要在不同的物理位置安装两个 Flutter 版本,如下所述:flutter.dev/docs/get-started/install/… 并更新您的 PATH
以切换到您要使用的版本,更多信息请参见:flutter.dev/docs/get-started/install/windows#update-your-path跨度>
按照@Karol Lisiewicz 的推荐使用 FVM 作为 Flutter 版本管理器
【参考方案1】:
您可以查看Flutter FVM。该工具允许您管理多个频道和版本,并将这些版本缓存在本地,因此您不必每次想要切换版本时都等待完整设置。
【讨论】:
【参考方案2】:如果开发人员必须频繁切换渠道,则需要花费大量开发时间。即使这里提出的解决方案不是那么专业,但它确实可以完成工作。
-
您所要做的就是创建 Flutter SDK zip 文件的副本并将其解压缩到两个不同的文件夹中,例如
C:\src\stable\flutter and C\src\master\flutter
。
同时下载并解压dart SDK到C:\src\stable\dart
和C:\src\master\dart
将C:\src\stable\flutter\bin;C:\src\stable\dart\dart-sdk\bin
添加到环境变量:PATH。
打开一个新的命令提示符窗口并运行flutter channel stable
然后运行颤振医生
这将为flutter stable
下载必要的组件。
复制C:\src\stable\flutter\bin;C:\src\stable\dart\dart-sdk\bin
; C:\src\stable\flutter\.pub-cache\bin
到记事本文件。
从 Path 环境变量中删除上述路径
将C:\src\master\flutter\bin;C:\src\master\dart\dart-sdk\bin
添加到环境变量:PATH。
打开一个新的命令提示符窗口并运行flutter channel master
。
运行flutter doctor
这将下载 Flutter Master 所需的组件。
复制C:\src\master\flutter\bin;C:\src\master\dart\dart-sdk\bin
; C:\src\master\flutter\.pub-cache\bin
到记事本文件中。
如果您需要使用稳定的频道(用于移动开发),请使用第 7 步中的路径和路径环境变量,如果您想在频道主中开发(用于网页、桌面等),请使用第 13 步中的路径。 )
欲了解更多信息,请参阅Switch between channels without downloading the whole SDK every time
【讨论】:
【参考方案3】:Linux 解决方案(可能是 MacOS)
-
下载纯flutter
解压。
将名称更改为“flutter-stable”
复制此文件夹。
将副本的名称更改为“flutter-web”(例如)。
打开主文件夹中的 .bashrc 文件。
在末尾添加两行:
别名flutter =“您的目录路径/flutter-stable/flutter”
alias flutter-web = "你的文件夹路径/flutter-web/flutter"
重新启动计算机(或注销并重新登录)。
在终端输入“flutter doctor -v”和“flutter-web doctor -v”(下载必要的文件)
在终端输入“flutter-web 频道”查看当前分支(标有星号)
为了改变分支,在终端输入“flutter-web channel master”(代替master,可以任意选择)
在终端输入“flutter-web upgrade”更新分支。
完成。如果需要稳定版,那就用flutter(flutter pub get),如果是web,那就用flutter-web(flutter-web pub get)
Ps 如果你已经有稳定版,那么:
跳过第 3 点和第 4 点。(不需要复制,只需下载一个干净的 Flutter sdk,解压,重命名,然后放在现有的旁边) 从环境中删除flutter sdk的路径,这样就不会发生名称冲突(需要重新启动)【讨论】:
以上是关于Flutter - 如何在不每次下载flutter和dart sdk的情况下切换flutter频道的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用flutter_test.dart包的情况下编写用于在flutter集成测试中点击屏幕点的测试脚本?
(Flutter) 如何在不按“完成”的情况下自动监听 TextField 中的变化?
如何使用提供的建议生成在不正确的单词下划线的 Flutter 文本字段?
Flutter:如何在不阻塞 UI 的情况下异步地从资产中读取文件