如何在flutter中包含你自己的包要使用的文件资产

How to include file assets to be used by your own package in flutter

我有一个包,我试图从我的 rootBundle 加载一个字符串。该文件仅作为内部配置的一部分在包本身中使用。我看不出哪里错了。

这是我的文件夹结构:

my-package
  --> lib
  --> pubspec.yaml
  --> assets/file.js

这是我的内容pubspec.yaml

flutter:
  assets:
    - assets/
    - assets/file.js

我是这样称呼它的

String js = await rootBundle.loadString('assets/file.js');

我总是无法加载资产

Unable to load asset: assets/file.js

有同样的问题,但通过这样做解决了它:

在您的包的 .yaml 文件中,添加此行以导入 file/asset

assets:
- packages/<Package name>/assets/<File name>

<Package name> 替换为您的包裹名称,并将 <File name> 替换为所述 file/asset.

的名称

然后将 file/asset 放在包的 lib 目录下的文件夹中。结构应如下所示:

my_package
--> lib
    --> assets
        file.js

确保在必要时将任何其他文件夹添加到引用中。

在您的应用或程序包中引用 file/asset 时,请使用与 .yaml 文件中相同的引用:

String js = await rootBundle.loadString('packages/<Package name>/assets/file.js');

例如,这里我得到一个 .js 文件。