为什么 build_runner watch 命令不起作用?

问题描述 投票:0回答:1

我一直在从事这个 flutter 项目,由于各种原因我需要代码生成,例如 Riverpod 提供程序和冻结模型。所以我使用

build_runner
包来生成这个
.g.dart
文件,但是当我运行
dart run build_runner watch
时突然出现此错误:

[INFO] Generating build script completed, took 152ms
[WARNING] ../../../../../.pub-cache/hosted/pub.dev/riverpod_generator-3.0.0-dev.4/lib/src/templates/family.dart:230:48: Error: The getter 'metadata' isn't defined for the class 'AstNode'.
 - 'AstNode' is from 'package:analyzer/src/dart/ast/ast.dart' ('../../../../../.pub-cache/hosted/pub.dev/analyzer-6.2.0/lib/src/dart/ast/ast.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'metadata'.
    final meta = metaAnnotations(provider.node.metadata);
                                               ^^^^^^^^
[INFO] Precompiling build script... completed, took 625ms
[SEVERE] Failed to precompile build script .dart_tool/build/entrypoint/build.dart.
This is likely caused by a misconfigured builder definition.

我看过几篇关于这个问题的帖子,但任何建议的答案似乎都有效。 所以我尝试了几件事:

dart run build_runner build --delete-conflicting-outputs
删除
pubspec.lock
文件
flutter clean
flutter pub get
使用
flutter pub upgrade
将软件包升级到最新版本 按照一篇文章中的建议添加
analyzer
依赖包。 尝试过
dart run build_runner doctor
但得到了相同的输出。 我还尝试了
flutter chache repair
flutter pub get
并手动删除缓存存储的 int
.dart_tool/
目录,但没有任何效果。 我已经被困在这个问题上几个小时了,但没有任何效果,我不知道可能出了什么问题。 这是我的
pubscpec.yaml
文件

name: myapp
description: A new Flutter project.
publish_to: none
version: 1.0.0+1
environment:
  sdk: '>=3.0.5 <4.0.0'
  flutter: ">=3.0.0"
  
dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  flutter_riverpod: ^2.3.6
  riverpod_annotation: ^2.2.0
  analyzer:
dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0
  riverpod_generator: ^3.0.0-dev.3
  riverpod_lint: ^2.3.0
  build_runner: ^2.4.6
flutter:
  assets:
    - lib/shared/assets/images/
  fonts:
    - family: Mont-Bold
      fonts:
        - asset: lib/shared/assets/fonts/Mont-Bold.otf
    - family: Mont-SemiBold
      fonts:
        - asset: lib/shared/assets/fonts/Mont-SemiBold.otf
    - family: Mont-Heavy
      fonts:
        - asset: lib/shared/assets/fonts/Mont-Heavy.otf
uses-material-design: true
flutter dart dart-pub flutter-build
1个回答
0
投票

3.0.0-dev.4
riverpod_generator
版本有问题,暂时可以通过删除
3.0.0-dev.3
来严格使用
^

dev_dependencies:
  riverpod_generator: 3.0.0-dev.3
© www.soinside.com 2019 - 2024. All rights reserved.