问题标签 [dart-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
43 浏览

flutter - 如何在 Flutter 应用中使用自定义配置

Dart构建文档指出可以通过在 cli 中创建build.{config_name}.yaml和使用来进行自定义配置:--config config_name

如果你需要除 dev 和 release 之外的其他配置,你可以定义多个build.yaml文件。例如,如果您有一个build.debug.yaml可以构建的文件,--config debug并且将使用该文件而不是默认的build.yaml. 开发和发布风格仍然适用。dart run build_runner serve --config debug将使用dev_optionsin build.debug.yaml,而dart run build_runner build --config debug --release 将使用release_optionsin build.debug.yaml

但是我在传递时遇到--config错误flutter build。如何在颤振应用程序中使用自定义配置?

0 投票
0 回答
56 浏览

flutter - 使用源生成器包中的源生成器时出错

我正在编写一个json_serializable用于其中一些模型的 dart 源生成器。最初源代码生成在一段时间内运行良好,但现在当我运行dart run build_runner build --delete-conflicting-outputs时出现错误:

[信息] 生成构建脚本完成,耗时 410 毫秒
[信息] 读取缓存资产图完成,耗时 62 毫秒
[信息] 检查自上次构建完成后的更新,耗时 492 毫秒
[警告] 由于构建脚本更新,资产图无效!
[INFO] 清理以前版本的输出。完成,耗时 4 毫秒
[信息] 生成构建脚本已完成,耗时 79 毫秒
[警告] 由于缺少资产图,预编译构建脚本无效。
[警告] lib/settings/config.dart:3:6: Error: Error when reading 'lib/settings/config.g.dart': No such file or directory
part 'config.g.dart';
^
lib/settings/config.dart:3:6: 错误:不能使用“lib/settings/config.g.dart”作为一部分,因为它没有“部分”声明。
部分'config.g.dart';
^
[INFO] 预编译构建脚本...已完成,耗时 785 毫秒
[严重] 无法预编译构建脚本 .dart_tool/build/entrypoint/build.dart。这可能是由错误配置的构建器定义引起的。

这是我的包的依赖项:

build.yaml 看起来像这样:

我无法弄清楚为什么会发生这种情况,或者对于提供自己的生成器的包使用源生成器是否有任何限制。有什么办法可以解决这个问题吗?

编辑

我正在使用 vscode,但我尝试从终端构建并且也得到了同样的错误。即使运行flutter clean | dart pub get | dart run build_runner build --delete-conflicting-outputs相同的错误仍然存​​在。

当前的解决方法

目前我正在手动创建.g.dart文件并手动添加part of语句,build_runner之后运行会成功生成源代码。但是,如果build_runner在将生成的方法链接到我的代码后再次运行,.g.dart文件将被删除,并且我再次面临同样的错误。每次我想要源生成时,我都必须重复这个过程。