injectable库@InjectableInit注解的preferRelativeImports属性作用是什么
@InjectableInit 中 preferRelativeImports 属性作用说明
preferRelativeImports 是 injectable 代码生成器的路径格式控制参数,作用是指定生成的初始化代码中导入语句的路径类型:
- 当设置为
true时,生成的.injectable.dart配置文件中,所有项目内可注入类的导入都会使用相对路径 - 当设置为
false时,所有导入统一使用package:项目名/xxx.dart格式的绝对包路径
适用场景说明
如果你是在开发普通应用项目,建议设置为
true:后续调整项目目录结构时,生成代码的导入路径会自动适配调整,不容易出现路径不匹配的导入错误。
如果你是在开发要发布到 pub 的第三方包/插件,建议设置为false:绝对包路径不会因为外部项目的引用层级出现路径失效问题,兼容性更好。
路径对比示例
假设你的项目目录结构如下:
lib/ ├── main.dart ├── di/ │ └── injectable_config.dart # 写@InjectableInit注解的文件 └── services/ └── user_service.dart # 你定义的可注入类
对应两种参数值的生成导入语句分别为:
preferRelativeImports: true生成相对路径导入
import '../services/user_service.dart';
preferRelativeImports: false生成绝对包路径导入
import 'package:your_app_name/services/user_service.dart';
内容的提问来源于stack exchange,提问作者Mariam Albarghouti
相关产品推荐
相关产品推荐

