You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Riverpod Generator无法识别Drift生成的TodoItem类型求助

解决Riverpod生成器无法识别Drift生成的TodoItem类型问题

问题原因

build_runner默认并行执行代码生成器,Riverpod_generator可能在Drift的database.g.dart生成完成前就开始处理providers.dart,导致无法识别自动生成的TodoItem类型,标记为InvalidType。

解决方案

方案1:通过build.yaml强制指定生成顺序

在项目根目录创建/修改build.yaml文件,让Riverpod生成器依赖于Drift生成器,确保Drift先完成代码生成:

targets:
  $default:
    builders:
      riverpod_generator:
        depends_on:
          - drift_dev

配置完成后,重新执行dart run build_runner watch -d即可。

方案2:分步执行代码生成

如果不想配置build文件,可以分两步单独触发对应生成器:

  1. 先生成Drift相关代码:
dart run build_runner build -d --builder=drift_dev:drift_dev
  1. 再生成Riverpod相关代码:
dart run build_runner build -d --builder=riverpod_generator:riverpod_generator

watch模式下也可以分开启动两个进程,先启动Drift的watch,再启动Riverpod的。

额外检查

确保providers.dart中正确导入了database.dart,因为TodoItem是通过database.dart的part文件暴露的:

import 'database.dart'; // 必须添加这行

内容的提问来源于stack exchange,提问作者Liu Silong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:05:07