如何在具有多个 Dart 和 webdev 版本的机器上 运行 flutter_web 和 angulardart?

How to run flutter_web and angulardart on one machine with multiple Dart and webdev versions?

如何在具有多个 Dart 和 webdev 版本的机器上 运行 flutter_web 和 angulardart?即使我在需要切换 Dart 版本时设置了不同的 PATH,两个 Dart 版本仍然使用相同的 webdev,这是不正确的。

(官方暂无解决方案,后续官方会提供)

以下是我的解决方法。我是 运行ning MacOS。在 Linux 中应相同,在 Windows 中应相似。

有两件事需要注意。 (1) Dart SDK 版本 (2) 一个不同的 PUB_CACHE 因为 webdev 版本会不同。

我从this link手动下载了angulardart所需的dart版本,并将其放在NOT的某个地方PATH。并将 flutter 的飞镖和 flutter_web 放在 PATH 中。 (我不会详细解释这个,应该很简单。)

然后我写三个脚本和一个env设置文件:

  • 文件angular-env:
export PUB_CACHE="$HOME/.pub-cache-angular"
export PATH="Override PATH"

注意: 当你覆盖 PATH 时,确保 (1) 移除 flutter dart bin,(2) 移除 ${HOME}/.pub-cache/bin (3)添加 angulardart 飞镖容器,(4)添加 $HOME/.pub-cache-angular/bin

  • 文件angular-dart:
#!/bin/bash

source angular-env

dart "$@"
  • 文件angular-pub:
#!/bin/bash

source angular-env

pub "$@"
  • 文件angular-webdev:
#!/bin/bash

source angular-env

webdev "$@"

别忘了让它们可执行。

现在,您可以简单地使用 angular-pub global activate webdev 为 angulardart 安装 webdev

在此之后,一切都应该正常。 angulardart项目中可以运行angular-webdev serve

检查我的一些终端输出:

$ dart --version
Dart VM version: 2.5.0-dev.1.0.flutter-fedd74669a (Sat Jul 20 00:05:23 2019 +0000) on "macos_x64"
$ angular-dart --version
Dart VM version: 2.2.1-dev.3.0 (Tue Apr 2 13:55:04 2019 +0200) on "macos_x64"
$ pub version
Pub 2.5.0-dev.1.0.flutter-fedd74669a
$ angular-pub version
Pub 2.2.1-dev.3.0
$ webdev --version
2.3.0
$ angular-webdev --version
2.0.5