Dart`pubspec.yaml`:让包的一部分使用颤振,而不使用整个包,这取决于颤振

Dart`pubspec.yaml`:让包的一部分使用颤振,而不使用整个包,这取决于颤振,dart,flutter,dart-pub,Dart,Flutter,Dart Pub,我试图在pub.dart.org上创建一个跨flatter、Web和Other工作的包。只要包中的默认文件没有平台依赖关系,其他文件就可以这样做,而不会导致整个包依赖于平台。当一个文件使用dart:io而另一个文件使用dart:html时,只要默认导入不这样做,该功能就可以工作 但是,添加对flatter的任何类型的依赖(例如,因为包中只有一个文件使用它),会导致pub.dart.org仅将包列为flatter 我相信这与颤振实际上需要在pubspec.yaml中使用SDK这一事实有关,但我还没

我试图在pub.dart.org上创建一个跨
flatter
Web
Other
工作的包。只要包中的默认文件没有平台依赖关系,其他文件就可以这样做,而不会导致整个包依赖于平台。当一个文件使用
dart:io
而另一个文件使用
dart:html
时,只要默认导入不这样做,该功能就可以工作

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


我相信这与颤振实际上需要在
pubspec.yaml
中使用SDK这一事实有关,但我还没有找到关于这一点的任何进一步信息。

您应该能够做到这一点。例如,如果您查看该插件,您可以看到它在Flutter、Web和其他应用程序上是可用的,因此您只需确保您的依赖关系在这三个应用程序中是通用的,并且您应该可以很好地使用它!如果将其放在pub.dart.org上有问题,您可以首先尝试将文件从flatter传输到dart,以及pubspec.yaml和所有其他文件,然后立即尝试将其放在上面。

因为web/io和flatter使用不同的dart SDK,这会造成麻烦。 如果pubspec.yaml包含

flutter_test:
  sdk: flutter
非颤振
pub
工具将拒绝该包

您可以尝试从共享包中删除该选项


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

您应该有3个包,而不是一个包。一个用于采用接口的核心实现。这些接口的一个web实现。另一个是用于flutter的。但目前有两个:web/other可以共享,但flutter不能。我认为应该有一些解决办法。是否有一些官方建议可以按照您所描述的那样做?仍然会选择Flitter的Dart SDK,因为它是一个暂时的依赖项。