如何在 macOS 中安装两个不同版本的 dart for flutter 和 aqueduct

How to install two different version of dart for flutter and aqueduct in a macos

目前我安装了dart和flutter,版本如下:

Flutter 1.23.0-18.1.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision 198df796aa (2 weeks ago) • 2020-10-15 12:04:33 -0700
Engine • revision 1d12d82d9c
Tools • Dart 2.11.0 (build 2.11.0-213.1.beta)

我主要从事移动应用程序前端开发,因此这种设置对我来说很好。

但是为了后端数据库开发,我开始学习 Aqueduct (https://aqueduct.io/docs/getting_started/)。我注意到 aqueduct 3.3.0+1(这是 aqueduct 的当前稳定版本)仅适用于 dart <2.8.0.

因此,我想知道是否可以在我的 mac 中安装两个版本的 dart。 如果是这样,我该怎么做? 当我单独或同时使用它们时(如果可能的话)如何切换或 select 不同版本的 dart for flutter 和 aquedart?

编辑:我这样做是因为我在 运行 aqueduct create project 时遇到错误。有什么解决办法吗?

-- Aqueduct CLI Version: 3.3.0+1
*** Uncaught error
    Bad state: No element
  **** Stacktrace
  * #0      ListMixin.firstWhere (dart:collection/list.dart:150:5)
  * #1      CLIAqueductGlobal.aqueductPackageRef (package:aqueduct/src/cli/commands/create.dart:342:10)
  * #2      CLIAqueductGlobal.templateDirectory (package:aqueduct/src/cli/commands/create.dart:347:12)
  * #3      CLIAqueductGlobal.getTemplateLocation (package:aqueduct/src/cli/commands/create.dart:351:12)
  * #4      CLITemplateCreator.handle (package:aqueduct/src/cli/commands/create.dart:51:27)
  * #5      CLICommand.process (package:aqueduct/src/cli/command.dart:159:20)
  * <asynchronous suspension>
  * #6      CLICommand.process (package:aqueduct/src/cli/command.dart:135:12)
  * #7      main (file:///C:/Users/dos/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/aqueduct-3.3.0+1/bin/aqueduct.dart:9:27)
  * #8      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
  * #9      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
  ****

这不是真的。 Aqueduct 和 Flutter 在 pubsbpec.yaml

中处理低于 3.0.0 的 Dart 版本

我正在和我的兄弟一起进行开发项目,我正在将其与最新的工作渡槽一起使用

Flutter (Channel master, 1.24.0-4.0.pre.138, on Mac OS X 10.15.7 19H2
    darwin-x64, locale en-BR)

flutter 的 dart sdk 不用担心,它一个人搞定

要使用与 flutter 分开的新版本的 dart,只需使用 Homebrew

brew tap dart-lang/dart
brew install dart

在您的 flutter 项目中,您在 .vscode 文件夹中的 settings.json 中覆盖了新的飞镖路径(我正在使用 flutter_master build,所以我也必须覆盖它而不是颤振稳定)

{
  "dart.flutterSdkPath": "~/Library/flutter_master/bin",
  "dart.sdkPath": "/usr/local/bin/dart"
}

更新 1:

使用以下

更新您的pubspec.yaml
dependencies:
  aqueduct: 3.3.0+1

dependency_overrides:
  postgres: 2.2.0

你说的错误我也遇到过,忘记说了。 我很久以前在 this github thread

中发现的问题

我在 运行 aqueduct create project 编辑时遇到错误的问题是由于一开始没有正确设置 pub。

如果您遇到这个问题,请使用

  1. 将 dart-sdk 插入到您的路径环境变量中。如需更多信息,请关注此 link https://www.youtube.com/watch?v=VdcJ2PAzXWs&ab_channel=NickManning 的前几分钟。这允许您使用 pub.
  2. 如果您正确执行了上述步骤,那么您可以 运行 pub global activate aqueduct 而不是 flutter pub global activate aqueduct 并且稍后可以毫无问题地创建项目。