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 上创建一个适用于 Flutter
、Web
和 Other
的程序包。只要包中的默认文件不具有平台依赖性,其他文件也可以这样做而不会导致整个包依赖于平台。这在一个文件使用 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的库解压到单独的包中。
我正在尝试在 pub.dart.org 上创建一个适用于 Flutter
、Web
和 Other
的程序包。只要包中的默认文件不具有平台依赖性,其他文件也可以这样做而不会导致整个包依赖于平台。这在一个文件使用 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的库解压到单独的包中。