首页 > 解决方案 > 如何在 macos 中为颤振和渡槽安装两个不同版本的飞镖

问题描述

目前我已经用颤振安装了飞镖,版本如下:

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/ )。我注意到渡槽 3.3.0+1(这是渡槽的当前稳定版本)仅适用于 dart <2.8.0。

因此,我想知道是否可以在我的 mac 中安装两个版本的 dart。如果是这样,我该怎么做?当我单独或同时使用它们时(如果可能的话),如何为颤振和 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)
  ****

标签: flutterdartaqueduct

解决方案


这不是真的。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,它自己处理

要使用与颤振分开的新版本 dart 只是使用 Homebrew

brew tap dart-lang/dart
brew install dart

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

{
  "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

你提到的错误和我一样,我忘了提。我很久以前在这个github线程中发现的问题


推荐阅读