[TOC] 指南

资料

# # Bundle资源 现在我们已经了解了模板资源的语法和格式,接下来介绍如何从dart源码直接生成bundle文件。

目前自动生成能力仅适用于严格的build函数,请确保不包含逻辑运算,生成失败需要手工编写、修正

## # 环境检查 首先确保Dart-SDK已经正常配置。通常dart-sdk目录下有如下内容:
  1. aven-mac-pro:dart-sdk aven$ ls bin/
  2. dart dartanalyzer dartdoc pub utils
  3. dart2js dartaotruntime dartfmt resources
  4. dart2native dartdevc model snapshots
1 2 3 4 可以通过以下命令检查:
  1. which dart2native
1 ## # bundle生成 在项目的根目录下,执行build_runner触发构建: flutter pub run build_runner build 日志较多,可以按需过滤,执行完成后,可以看到生成的bundle文件。
  1. aven-mac-pro:example aven$ flutter pub run build_runner build |grep Fair
  2. [Fair] Compile lib/page/zhihu/my_page.dart into bundle
  3. [Fair] Compile lib/page/hello_world.dart into bundle
  4. [Fair] Compile lib/page/layout_sugar_page.dart into bundle
  5. [Fair] New bundle generated => build/fair/lib_page_layout_sugar_page.fair
  6. [Fair] New bundle generated => build/fair/lib_page_zhihu_my_page.fair
  7. [Fair] New bundle generated => build/fair/lib_page_hello_world.fair
1 2 3 4 5 6 7 8 文件位于build/fair目录下,可以取出.fair文件,通过网络或者内置在App中使用: fair bundle ## # bundle使用 通过FairWidget引用bundle资源,更高级的用法请参考demo。
  1. FairWidget(
  2. path: 'http://xxx.com/resource.json',
  3. name: 'demo',
  4. )
1 2 3 4 ## # 约束 目前bundle能力并不完善,可能会出现错误,如果遇到可以反馈。 无论是bundle编写还是生成,都不能包含逻辑运算,Fair当前只能处理静态的布局渲染。 编写组件映射表 模板语法【实验】