registerAssets function

Future<void> registerAssets(
  1. List<String> paths
)

判断资源目录是否已经注册到pubspec.yaml文件中

Implementation

Future<void> registerAssets(List<String> paths) async {
  final yamlFile = await getYamlFile();
  final editor = YamlEditor(yamlFile.readAsStringSync());

  final flutterMap = Map.from(editor.parseAt(['flutter'], orElse: () => YamlMap()).value);
  final assets = List.from(flutterMap.putIfAbsent('assets', () => YamlList()));

  final list = paths.where((element) => !assets.contains(element));
  if (list.isNotEmpty) {
    assets.addAll(list);
    flutterMap['assets'] = YamlList.wrap(assets);
    editor.update(['flutter'], YamlMap.wrap(flutterMap));
    await yamlFile.writeAsString(editor.toString(), flush: true);
    await runPubGet();
  }
}