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。

但是,它会不断重新下载资源。我做错了什么?

有人可以帮忙吗?

谢谢。

【问题讨论】:

在不同位置安装两个版本,只需切换PATHenv变量 假设我打开了一个项目,我目前在稳定频道上。那么如果我想转到主频道我该怎么办?同样在项目设置中,我应该指向哪个颤振 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\dartC:\src\master\dartC:\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\binC:\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 的情况下异步地从资产中读取文件

如何在 StreamBuilder 中更新 Flutter Cards 而无需重置状态?

如何使用dart / flutter在不同类上使用变量