我们是否应该将构建_VALUE生成的代码进行git



built_value生成 .g.dart代码,但是如果我们是否应该将它们添加到我们的git存储库中。

我认为我们应该,所以开发我们的存储库可以启动和运行,而不必再生代码...但是有些人说生成的代码永远不应该犯下,那么,built_value的建议是什么?

如果要建立要通过其他软件包和应用程序重复使用的库包,则应提交它。

代码生成无法在依赖项中生成代码,而pub publish忽略了.gitignore D文件。您将发布无效的软件包。在这种情况下,依赖git的依赖性也不会起作用。

有些软件包仅在应用程序项目中生成代码,也适用于从依赖项导入的代码,例如reflectable。在这种情况下,您无需提交生成的代码。

即使在应用程序项目中,我总是会提交此类生成的代码。这些文件具有特定的范围,例如.g.dart,可以在代码审核中排除以不引起噪声或类似的范围。

tldr:如果将生成的文件添加到git提交中,然后击中您所需要做的所有问题,就是使用标志--delete-conflicting-outputs

运行build_runner

flutter packages pub run build_runner build --delete-conflicting-outputs

将生成的文件添加到git提交的问题以及如何处理

上面提到的build_runner文档点上未在git consits中添加生成的文件并不是一个好点。后来我说为什么。

添加生成的文件的要点不必在每次执行拉动请求时都必须运行build_runner,而不必处理不将它们添加到git consits中。

但是,如果您决定将生成的代码添加到git提交中,会发生什么?以及如何轻松解决它们。

第一个问题是您可能会在生成的文件中面对合并冲突。现在您如何处理这个。您不不要。此时,您只需在源文件中解析冲突(如果有),然后运行build_runner,并且将再次生成Gnerated文件。

另一个问题是builder_runner文档中提到的内容。这是您运行build_runner的时候,它会给您这个错误

C:workspaceflutterprojects> flutter pub run build_runner build
[INFO] Generating build script...
[INFO] Generating build script completed, took 336ms
[WARNING] Deleted previous snapshot due to missing asset graph.
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 12.5s
[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 787ms
[INFO] Checking for unexpected pre-existing outputs....
[INFO] Found 13 declared outputs which already exist on disk. This is likely because the`.dart_tool/build` folder was deleted, or you are submitting generated files to your source repository.
[SEVERE] Conflicting outputs were detected and the build is unable to prompt for permission to remove them. These outputs must be removed manually or the build can be run with `--delete-conflicting-outputs`. The outputs are: lib/models/advisory-service-item.g.dart

在运行build_runner时,您可以轻松地求解添加--delete-conflicting-outputs标志。就像我们已经做了很多次

flutter packages pub run build_runner build --delete-conflicting-outputs 

相关内容

  • 没有找到相关文章

最新更新