Dart 'pubspec.yaml':让包的一部分使用 Flutter,而不使用依赖于 Flutter 的整个包



我正在尝试创建一个适用于FlutterWebOther的包 pub.dart.org。只要包中的默认文件没有平台依赖项,其他文件就可以这样做,而不会导致整个包依赖于平台。当一个文件使用dart:io而另一个文件使用dart:html时,只要默认导入不这样做,这就可以工作。

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

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

因为 web/io 和 Flutter 使用不同的 Dart SDK,这会导致麻烦。 如果pubspec.yaml包含

flutter_test:
sdk: flutter

非颤振pub工具将拒绝该包。

您可以尝试将其从共享包中省略。

如果这不起作用,您需要将直接依赖于 Flutter SDK 的库提取到一个单独的包中。

你应该能够做到这一点。例如,如果您查看密码插件,您可以看到它可以在 Flutter、Web 和其他上使用,因此您只需要确保您的依赖项在所有三个中都是通用的,您应该很高兴!如果把它放在 pub.dart.org 上时有问题,你可以先尝试将你的文件从颤振传输到飞镖,以及你的pubspec.yaml和所有其他文件,然后尝试现在就把它放上去。

最新更新