Dart `pubspec.yaml`:让包的一部分使用 Flutter 而不是整个包取决于 Flutter

Dart `pubspec.yaml`: Have one part of the package use Flutter without the whole package depending on Flutter

我正在尝试在 pub.dart.org 上创建一个适用于 FlutterWebOther 的程序包。只要包中的默认文件不具有平台依赖性,其他文件也可以这样做而不会导致整个包依赖于平台。这在一个文件使用 dart:io 而另一个文件使用 dart:html 时有效,只要默认导入不这样做即可。

但是,添加对 Flutter 的任何类型的依赖,比如因为包中有一个文件使用它,导致 pub.dart.org 仅将包列为 Flutter

我认为这与 Flutter 在 pubspec.yaml 中实际上需要 SDK 这一事实有关,但我无法找到有关此的任何进一步信息。

你应该可以做到。例如,如果你查看 password 插件,你会发现它可以在 Flutter、Web 和其他平台上使用,所以你只需要确保你的依赖项在这三个方面是通用的,你应该很好去!如果将它放在 pub.dart.org 上有问题,您可以先尝试将您的文件从 flutter 传输到 dart,连同您的 pubspec.yaml 和所有其他文件,然后尝试立即将它放在上面。

因为web/io和Flutter使用不同的Dart SDK,所以会出现问题。 如果pubspec.yaml包含

flutter_test:
  sdk: flutter

非 Flutter pub 工具将拒绝包。

您可以尝试将其从共享包中删除。

如果不行,需要将直接依赖Flutter SDK的库解压到单独的包中。