我正在尝试创建一个适用于Flutter
、Web
和Other
的包 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和所有其他文件,然后尝试现在就把它放上去。