Max*_*axi 5 flutter flutter-dependencies flutter-web
我想以与Android不同的依赖性来编译Web的Flutter代码。没有支持两者的依赖关系,所以我需要寻找另一种方法。
我在网上找到了build.yaml,但我还不了解。也许这对我来说是正确的选择,有人可以帮助我更好地理解它(谢谢:D)。
它应该处于单独的编译阶段,因为如果我针对Web进行编译,则android依赖项会阻止编译。
Skipping compiling pay_balance|lib/main_web_entrypoint.dart with ddc because some of its
transitive libraries have sdk dependencies that not supported on this platform:
firebase_core|lib/firebase_core.dart
https://github.com/dart-lang/build/blob/master/docs/faq.md#how-can-i-resolve-skipped-compiling-warnings
Run Code Online (Sandbox Code Playgroud)
最终结果应该是一个对Web和android具有不同依赖项的代码,并且不能编译其他代码。因此,当我为网络开发时,不应编译android依赖项!
您必须使用上面提到的条件导入。我最近这样做了,方法如下:
您将需要创建一些详细的文件,但这还不错。
my_service.dart- 用于进行导入
my_service_main.dart- 由于 Dart 导入当前的工作方式,将用于消除初始导入
my_service_web.dart- 将导入特定于 Web 的库,例如dart:html并执行您要实现的 Web 版本
my_service_mobile.dart- 将导入 iOS/Android 库,例如dart:io并制作移动版本
throw UnsupportedError从“主要”版本把它们放在一起
// my_service_main.dart
void doTheThing() => throw UnsupportedError('doTheThing Unsupported')
// my_service_web.dart
import 'dart:html' as html;
void doTheThing(){
// do your thing, use `html`, etc
}
//my_service_mobile.dart
import 'dart:io';
void doTheThing(){
// do your thing using dart:io
}
// The export file
// my_service.dart
export 'my_service_main.dart'
if (dart.library.js) 'my_service_web.dart'
if (dart.library.io) 'my_service_mobile.dart'
// Then in your code you can import
import 'my_service.dart';
void main() {
doTheThing();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |