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

Dart宏生成代码报错:part文件中part-of指令需为唯一指令

问题原因

你碰到的错误本质是Dart的part文件规则限制:part文件只能包含part of这一条顶级指令,任何额外的import、library指令都不被允许。而你的宏在生成增强代码时,自动为List和Bind类型添加了import语句,直接违反了这个规则。

解决办法

1. 在主库文件中提前导入依赖类型

打开你的home_module.dart(也就是被宏增强的主类所在的文件),手动导入Bind类(dart:core是Dart默认自动导入的,无需额外添加):

import 'package:flutter_modular/src/presenter/models/bind.dart';

part 'home_module.augmented.dart'; // 替换成你实际的宏生成文件名

@ReviewableModule()
class HomeModule {
  // 你的原有类实现代码
}

2. 让宏复用主库的类型可见性

当主库已经导入了Bind类后,宏在生成增强代码时会自动复用主库的类型上下文,不会再在part文件中添加多余的import。此时宏生成的代码会变成合规的形式:

part of 'package:macros_test/home_module.dart';

augment class HomeModule {
  augment List<Bind> get binds {
return [
  ...augmented
];
}
}

额外提示

因为Dart宏目前还处于实验阶段,自动类型导入的逻辑可能存在不完善的地方。手动在主库提前导入所有需要用到的依赖类型,是目前规避这类part文件违规问题的最可靠方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:19:54