问题标签 [build-runner]

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 投票
1 回答
80 浏览

flutter - 在团队中使用 Flutter 中的代码生成来生成生产代码是个好主意吗?

在团队开发的 Flutter 项目中使用代码生成是个好主意吗?

如果是,是否可以指定单个文件flutter package pub run build runner

0 投票
2 回答
1552 浏览

flutter - flutter build_runner:为 build.yaml 中的特定文件扩展构建

我想加快 build_runner 所需的构建时间,并且我还想build watch在我编辑没有任何文件要生成的文件时防止在运行时重新构建。

我知道这需要在build.yaml文件中进行编辑,但我什么也做不了。

这是我的构建文件

即使尝试添加enabled: false,这让我相信它会禁用该依赖项的构建,但什么也不做,文件继续生成。

也许我只是误解了应该如何使用构建文件......?

0 投票
1 回答
273 浏览

flutter - 分析器需要启用“不可为空”语言功能

我通过迁移到 null-safety 犯了一个错误,然后一切都变成了错误,在修复了很多错误之后,我仍然得到一个错误,错误是:

0 投票
1 回答
370 浏览

flutter - Flutter 冻结数据与模型数据冲突

我是 Flutter 的新手并遵循各种指南来学习,实际上,在尝试自己做一些简单的事情之后,我发现了一个奇怪的问题,我不知道如何摆脱它......

这些是我的依赖项:

我创建了一个/status返回简单对象的小型 nodejs 端点:{ message: 'success' }

我创建了一个模型Status

我创建了一个Status_notifier

错误:不能将参数类型“StatusData(其中 StatusData 在 /my_long_path/lib/models/status_data.dart 中定义)”分配给参数类型“StatusData(其中 StatusData 在 /my_long_path/lib/application/state 中定义)” /status_state.freezed.dart)'。

我创建了一个Status_state

出于某种原因import,我的StatusData模型是“灰色”,未使用...看起来它正在使用StatusData来自某个生成的文件...

我创建了Status_client获取数据:

最后是Status_provider

我还执行了flutter pub run build_runner serve --delete-conflicting-outputs生成文件的命令。

同样在我的用户界面中Consumer,当状态为时,loaded我有一个错误:

loaded: (status) => HomePageLoaded(status: status),

错误与上面写的相同...

有人可以解释我的实现有什么问题,以便我可以做得更好吗?提前致谢!

0 投票
2 回答
352 浏览

flutter - 添加 Hive 字段后 build_runner 的问题

我之前根据需要向 Hive 类型添加了额外的 Hive 字段。然后我删除了 .g.dart 文件并重新生成它没有问题。

这次在添加了一个新的 Hive 字段后,我遇到了这个错误,我无法理解为什么

我已经尝试过flutter clean、flutter pub outdated、pub get等等……我一直收到这个错误。

在我的 pubspec.yaml 中,这工作得很好,直到我添加了最新的 Hive 字段。

我发现了一篇关于降级分析器的旧帖子,但这会导致我正在使用的版本出现问题。

在 main.dart 中,第 33:3 行没有错误。它不应该有;按照建议。这在以前也很好用,所以我不知道为什么它现在是一个问题。我还在这里注释掉了代码,即使在第 33:3 行没有任何内容,我仍然收到相同的错误消息

如果我删除我添加的字段,我仍然会收到同样的错误。如果我从备份中恢复 .g.dart 文件,我可以像以前一样运行该应用程序。

对此的任何输入将不胜感激,因为它非常令人困惑

更新:

所以我尝试删除模型文件并完全重新创建它,然后生成.g.dart。我明白了:

我尝试保持文件原样,向以前的 Hive 类型添加了一个新的 Hive 字段并添加了一个 Hive 类型,但我没有生成任何内容。

我没有更改现有的 Hive 字段,我知道这会导致问题。新 Hive 字段和 Hive 类型被赋予下一个以前未使用过的数字。

0 投票
1 回答
332 浏览

flutter - 如何修复 Flutter build_runner 错误:无法预编译 build_runner:build_runner:

我正在开发两个 Flutter 项目,其中一个已经迁移到 null 安全并使用Flutter 2.0.5。第二个项目,即导致问题的项目,尚未迁移到 null 安全性并使用Flutter 1.22.6。只需重命名 Flutter SDK 文件夹即可切换项目。

现在的问题是build_runner它只适用于Flutter 2.0.5从Flutter 1.22.6flutter pub run build_runner build项目内部调用时,失败并显示以下错误消息:

奇怪的是,所有这些错误都在项目之外。调用flutter cleanflutter pub cache repair没有效果。所以问题是,需要做什么才能开始build_runner工作(现在已经过时了)Flutter version 1.22.6?非常欢迎您的建议,谢谢!

0 投票
0 回答
114 浏览

flutter - 如何使用 build_runner 和 source_gen 将函数体作为字符串获取?

我的目标是让我的单元测试易于理解。目前,它们很难理解,因为它们有很多嵌套函数。

我想使用 build_runner 生成单元的代码,其中所有功能都展开。

所以这是我当前测试的一个例子:

测试.dart

我想生成这样的代码

_$test.dart

我在网上找到了一些教程,但我可以找到关于将函数体转换为字符串的文档(有些像 JavaScript 的Function.prototype.toString()方法)我是代码生成的新手,所以我尝试打印所有字段,但我找不到类似的东西。

我也是注释的新手,所以我只是做了这个

我想要做的甚至可能吗?

0 投票
0 回答
109 浏览

flutter - 如何通过扩展过滤 build_runner 输入?

我正在尝试使用 Dart 的https://github.com/dart-lang/source_gen制作我的自定义构建器。

中的 buildExtensionsbuilder.dart.dart

它适用于任何 dart 文件

buildExtensions = { '.dart': [generatedExtension]..addAll(additionalOutputExtensions) },

在此处输入图像描述

因此,即使在 build.yaml 中,我也将构建输入设置为.source.dart

它忽略".source.dart"并仍然在任何 dart 文件上运行。

0 投票
1 回答
214 浏览

flutter - Objectbox Generator 有关问题的详细信息?

当我在 JSON 中生成类的情况下运行 objectbox_generator 时flutter packages pub run build_runner watch,但不久之后,由于空检查问题,生成失败。我检查了我的代码,找不到任何空值检查问题。有没有办法显示更详细的日志(例如它的位置)?

带有附加信息的相同命令flutter packages pub run build_runner build --verbose

0 投票
0 回答
235 浏览

flutter - 在 MobX 依赖项的空安全版本上运行 build_runner 时出错

我正在 Flutter 项目中试用 MobX,我引用了一个示例,但我升级了版本,这样我就可以练习使用 null 安全性进行编码。在我运行 pub upgrade 之前它一直在工作。运行 build_runner 开始给我这个错误:

这些是我的依赖项:

但是,如果我使用以下版本, build_runner 会按预期工作:

我真的很想实现空安全,但我不能用这个错误。我无法理解此错误以及它的来源,因此我无法在此错误来自的任何包中发布问题。我的依赖项设置有问题吗?

我尝试过flutter clean -> flutter pub cache repair -> flutter pub get,在一个新项目中重新开始,以及我认为可以解决问题的任何事情,我放弃了,这就是我在这里的原因。任何建议和帮助将不胜感激!谢谢!