alias flutterd='~/Documents/flutter_dev/bin/flutter'
alias flutterm='~/Documents/flutter_master/bin/flutter'
alias flutterb='~/Documents/flutter_beta/bin/flutter'
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
1.创建和编辑$HOME/.bash_aliases,并根据需要添加别名。
alias flutter2='~/development/sdks/flutter2/bin/flutter'
alias flutter='~/development/sdks/flutter/bin/flutter'
使用同样的技术,我把flutter2和flutter1分开安装,因为在一些项目中我需要两个版本,而在旧的项目中需要版本1。 现在打开VSCode中的特定项目,然后打开command palette (on Mac command was Command + Shift + P)并搜索flutter sdk。x1c 0d1x 现在选择Auto-Detect,这将在项目.vscode/settings.json的根目录下创建一个新文件。
9条答案
按热度按时间ghg1uchk1#
首先,你需要下载所有你希望能够本地切换的flutter SDK,并为它创建别名。这允许你通过命令行或终端使用多个版本的SDK,就像你使用任何flutter命令一样。如果你想在IDE中使用这些不同版本的SDK,您需要将SDK路径添加到IDE的设置中。2您可以在下面找到添加vscode路径的步骤。3下面的答案将帮助您设置不同版本的SDK,无论您使用的是Windows、Linux还是Mac。
在Mac/Linux上创建别名
这就是我在M1 Mac上的做法
我在
Documents
文件夹中下载了不同版本的flutter SDK,该文件夹位于$HOME/Documents
为了通过终端访问合适版本的flutter,我们需要创建别名,可以将别名看作是通过终端访问SDK的快捷方式。
1.要创建别名,您需要在$HOME目录中创建
.bash_aliases
文件你可以通过终端运行
将这些别名与相应的路径粘贴到文件中。
请注意,您可以根据需要命名别名。
我用过这个名字
flutterd
指向Flutter_偏差flutterm
指向Flutter_主控制器flutterb
指向Flutter_beta这意味着当您在终端中键入
flutterd
时,它将使用位于~/Documents/flutter_dev/bin/flutter
和的SDK,分别用于其余别名。(Hit ctrl + x并回车保存并退出)
1.最后,您需要将其添加到shell文件中
基本上就是rc文件
$HOME/.bashrc
(如果使用的是bash)$HOME/.zshrc
文件(如果使用zsh)如果你不确定,那么在你的终端输入
echo $SHELL
告诉你你使用的是哪个shell。这个文件和你第一次安装flutter sdk时添加的路径是一样的。如果这个文件不存在,你可以创建它。1.运行
source $HOME/.<rc file>
以刷新当前终端窗口。现在,您可以通过在终端
flutterm, flutterd
等中键入别名进行验证,它将从相应的sdk响应。您可以通过运行
<alias name> doctor -v
来验证这一点例如,验证flutterd是否指向dev运行
flutterd doctor -v
下面是我运行该命令时的输出
在Windows上创建别名
在Windows上,flutter SDK存储在
C:/flutter_sdk
中然后创建Alias文件夹,并创建与每个flutter SDK对应的批处理文件,每个批处理文件包含flutter SDK的路径
例如,
flutterd.bat
包含到dev
sdk的路径明智地命名您的批处理文件,因为您将从命令行使用它们。例如,我有一个名为
flutterb.bat
的批处理文件指向beta通道,因此要访问beta SDK,我将在命令行中使用flutterb
,而不是flutter
。最后,我们需要将alias文件夹添加到环境变量中,以便在整个Windows中可以访问它。
转到环境变量=〉用户变量=〉路径=〉编辑=〉新建
现在,您可以通过打开命令提示符并输入
flutterb doctor
来验证是否一切正常,它应该显示SDK指向beta向VScode添加多个SDK版本
现在,要在vscode中访问SDK的适当版本,您需要在设置中添加这些SDK路径。
sdk path
现在,当你打开一个flutter项目时,你可以通过点击底部的flutter版本来选择你想要的版本
它会提示您选择要使用的SDK
请注意,如果您正在从vscode更改版本,您还应该从
pubspec.yaml
中右上角的图标运行flutter pub get
,以便源代码根据所选的sdk进行更新。您可以通过查看源代码的类定义来确认这一点。mwngjboj2#
如果您使用VSCode,则可以为每个工作区指定Flutter SDK。您需要:
1.将flutter repo克隆到新文件夹:
1.使用以下内容创建
.vscode/settings.json
:1.重新启动VSCode,就可以开始了。
更多信息请参见Dart Code - Quickly Switching Between SDK Versions
k3bvogb13#
根据Flutter回购协议 iqbalmineraltown 的这个问题有答案:
您可能希望根据需要下载多个版本,因为每个Flutter SDK版本都与特定的Dart SDK紧密耦合。
您可以为每个项目设置Flutter版本,如果您使用VS代码,iqbalmineraltown 会突出显示一种方法:
如果您使用的是VSCode,您可以将flutter SDK的多个版本下载到不同的路径中,并使用Dart&Flutter Plugin在它们之间快速切换您可以通过为每个工作区提供默认SDK路径来为每个项目设置默认SDK。因此,当您打开项目时,VSCode将使用您为该项目指定的版本。
inkz8wg94#
如果您使用的是Android Studio,您可以从菜单文件=〉设置=〉语言和框架=〉Flutter为每个项目设置不同版本的Flutter:
要从命令行运行flutter/dart以获得多个flutter版本,您可以按照本文https://medium.com/@sarbagyastha/using-two-or-more-different-versions-of-flutter-in-single-machine-484293c2a7ff
vbopmzt15#
现在你可以使用“FVM”,它是Flutter版本管理,一个简单的CLI来管理每个项目的Flutter SDK版本。
1您可以通过以下命令使用它
2之后,你可以安装任何版本,你想要像
它将安装在
3切换版本:
有关详细信息,请访问FVM.app
sg24os4d6#
您可以简单地重命名文件夹,而不必每次都使用系统环境变量。
1.假设您在flutter文件夹下下载了Flutter 2.0.5,在flutter_2.2.2文件夹下下载了2.2.2,将flutter添加到环境路径中,如C:\src\flutter。
1.无论何时需要2.2.2版本,请将flutter_2.2.2重命名为flutter并将flutter重命名为flutter_2.0.5.
oug3syen7#
我建议在here上使用本教程,我对
Mac
做了一些更改:适用于基于UNIX/Mac的操作系统用户
编辑
$HOME/.bashrc
(对我来说,它是$HOME/.bash_profile
在Mac上)文件,并添加此行(如果它不存在)。1.创建和编辑
$HOME/.bash_aliases
,并根据需要添加别名。使用同样的技术,我把
flutter2
和flutter1
分开安装,因为在一些项目中我需要两个版本,而在旧的项目中需要版本1。现在打开
VSCode
中的特定项目,然后打开command palette (on Mac command was Command + Shift + P)
并搜索flutter sdk
。x1c 0d1x现在选择Auto-Detect,这将在项目
.vscode/settings.json
的根目录下创建一个新文件。打开这个文件,放置你想要使用的flutter版本的路径,如下所示:
请记住运行
flutter2 --doctor
,以解决任何问题在设置
flutter2
时,我遇到了一个问题,这里是I am getting error "cmdline-tools component is missing" after installing Flutter and Android Studio... I added the Android SDK. How can I solve them?。h43kikqp8#
您可以使用FVM来管理flutter https://fvm.app的版本
moiiocjp9#
安装几个版本的SDK并调整项目特定的IDE SDK设置似乎是合理的,但我更喜欢命令行工具,当你调用
flutter
命令时,它总是调用路径上的一个。这篇文章中的别名解决方案mentioned对我来说是比较可取的,但是在使用它的时候,我经常忘记用别名调用(比如
flutterb
),导致调用错误的flutter版本,在不小心这样做之后,我通常也需要做一个flutter clean
。受aliassolution的启发,我在项目的根文件夹中添加了一个
flutter.bat
文件,它包含以下行正如你可能猜到的,这个位置属于这个项目使用的特定flutter安装,它不是路径上的版本,但是因为我从项目的根文件夹调用所有的
flutter
命令,我的终端会话首先看到这个flutter,它使用这个版本,而不是路径上的全局版本,你可以通过第一次调用flutter doctor
来确认这一点。