我正在尝试创建一个在pub.dart.org上运行Flutter
,Web
和Other
的包。只要包中的默认文件没有平台依赖关系,其他文件就可以这样做而不会导致整个包依赖于平台。当一个文件使用dart:io
而另一个文件使用dart:html
时,这是有效的,只要默认导入不这样做。
但是,添加对Flutter的任何依赖性,比如因为包中有一个文件使用它,导致pub.dart.org仅将包列为Flutter
。
我认为它与Flutter实际上需要pubspec.yaml
中的SDK这一事实有关,但我无法找到有关此问题的任何进一步信息。
因为web / io和Flutter使用不同的Dart SDK会导致麻烦。如果pubspec.yaml
包含
flutter_test:
sdk: flutter
非Flutter pub
工具将拒绝该包。
您可以尝试将其从共享包中删除。
如果这不起作用,则需要将直接依赖于Flutter SDK的库提取到单独的包中。
你应该能够做到这一点。例如,如果您查看password插件,您可以看到它在Flutter,Web和Other上可用,因此您只需要确保您的依赖项在这三者中是通用的,您应该很高兴!如果将问题放在pub.dart.org上有问题,您可以先尝试将文件从flutter转移到dart,以及pubspec.yaml和所有其他文件,然后尝试将其打开。