mor*_*red 12 dart dart-pub flutter build-runner
我只是想用我 3 个月前存储的相同命令来生成我的文件(我对后端和 devops 不太擅长),现在它不再生成文件了。它告诉我使用我不记得的删除命令,但即使使用该命令,我的文件仍然不会生成。这就是我的日志的样子,您可以在下面找到一个简单类的代码。
我的猜测之一是这与我更改 github 帐户有关,因为提到了权限问题。
我在 Windows 10 中使用 vs 代码。
日志文件:
E:\1 Work\flutter_pilot> 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
lib/models/advisory-service.g.dart
lib/models/auth.g.dart
lib/models/contract.g.dart
lib/models/contributor.g.dart
lib/models/exact-cost-values.g.dart
lib/models/exact-cost.g.dart
lib/models/expert.g.dart
lib/models/paginator-info.g.dart
lib/models/person.g.dart
lib/models/project.g.dart
lib/models/system-country.g.dart
lib/models/user.g.dart
pub failed (78)
Run Code Online (Sandbox Code Playgroud)
类文件:
import 'package:json_annotation/json_annotation.dart';
part 'organisation.g.dart';
@JsonSerializable()
class Organisation {
final String name;
Organisation({this.name});
factory Organisation.fromJson(Map<String, dynamic> json) => _$OrganisationFromJson(json);
Map<String, dynamic> toJson() => _$OrganisationToJson(this);
}
Run Code Online (Sandbox Code Playgroud)
Dha*_*ata 43
我有一个类似的问题,但我使用的是 Android Studio IDE,我已经完成了以下步骤:
文件 => 使缓存无效/重新启动
运行以下命令:
flutter clean
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputs
Run Code Online (Sandbox Code Playgroud)
Ena*_*que 20
只需运行这个:
flutter pub run build_runner build --delete-conflicting-outputs
Run Code Online (Sandbox Code Playgroud)
小智 9
我遇到过同样的问题。使用以下命令解决
flutter packages pub run build_runner build --delete-conflicting-outputs
Run Code Online (Sandbox Code Playgroud)
我认为我们大多数人发生这种情况的主要原因是,当您之前运行此命令时,您将生成的g.dart文件添加到源代码管理中。这反过来又会阻止build_runner重新生成以前生成的g.dart文件,即使您只需要新g.dart文件,它也会这样做。现在,我知道这可能很难理解,但请考虑一下:
search_entry.dart文件。search_entry.g.dart成功生成了文件。search_entry.g.dart文件添加到源代码控制存储库。cached_data_entry.dart。cached_data_entry.dart,它将尝试删除该
search_entry.g.dart文件以与该
cached_data_entry.dart文件一起重新生成它。search_entry.g.dart受源代码管理保护,构建运行程序将无法删除它,因此它会抛出此错误。g.dart文件(search_entry.g.dart在我们的示例中),然后将其添加到源代码管理中的 file 中被忽略的文件中.gitignore。然后再次运行该命令,希望这次能成功。现在,最后,我希望我已经说得很清楚了。
如果您仔细阅读错误消息,您会发现它要求您尝试--delete-conflicting-outputs在命令末尾添加。所以你应该试试flutter packages pub run build_runner build --delete-conflicting-outputs。
在我的情况下,添加part 'file_name.g.dart';到文件顶部有帮助。
文件名.dart:
import 'package:json_annotation/json_annotation.dart';
part 'file_name.g.dart';
@JsonSerializable()
class YourClass {
factory YourClass.fromJson(Map<String, dynamic> json) => _$YourClassFromJson(json);
Map<String, dynamic> toJson() => _$YourClassToJson(this);
// ... your class code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22514 次 |
| 最近记录: |