Flutter中是否支持从pubspec依赖包的assets中读取字符串配置文件
Flutter读取依赖包内assets资源的实现方法
不需要专门的传包名API,Flutter通过约定的路径规则即可直接用rootBundle读取依赖包内的资源,步骤如下:
1. 配置公共依赖包的资源声明
在你的公共依赖包的pubspec.yaml中,正常注册要共享的配置文件:
flutter: assets: # 路径和包内实际文件存放路径保持一致 - assets/emoji-flags.json
2. 主项目无需重复配置
主项目只需要在pubspec.yaml中正常声明对该公共包的依赖即可,不需要重复拷贝配置文件,也不需要重复声明该assets资源。
3. 读取时按规则拼接路径
读取资源时给路径加上packages/[公共包名]/前缀即可,假设你的公共包名为common_core,示例代码如下:
final jsonStr = await rootBundle.loadString("packages/common_core/assets/emoji-flags.json", cache: false);
补充说明
- 该路径规则是Flutter官方约定的资源寻址规则,
rootBundle会自动解析路径中的包名,定位到对应依赖包的资源文件 - 路径大小写敏感,需要和包内实际路径、pubspec中声明的路径完全匹配
- 如果公共包内部需要读取自身的assets资源,也需要遵循同样的路径规则,避免路径冲突
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

