Flutter资源检查插件check_res的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter资源检查插件check_res的使用

检测资源文件

检测图片资源文件R.dart

flutter pub run check_res:check_res lib/res/r.dart lib

检测文字文件 string.dart

flutter pub run check_res:check_string lib/res/string.dart lib

检测所有

flutter pub run check_res:check_all lib/res/r.dart lib/res/string.dart lib

检测索引R.dart文件

执行检测工程目录下的R.dart的资源文件相关的文件是否被引用,最后会显示出没被引用的数据。

在根目录下执行如下命令:

flutter pub run check_res:check_res lib/res/r.dart lib

执行结果如下:

infinity[@infinitydeMBP-2](/user/infinitydeMBP-2) flutter_yongwen % sh scripts/lint_resource.sh lib/res/r.dart lib
$ grep -r R.icCry lib
lib/widgets/empty_widget.dart:        Imagex.asset(R.icCry, width: 200, height: 200, color: context.primaryColor),

$ grep -r R.icAvatar lib
ShellException(grep -r R.icAvatar lib, exitCode 1, workingDirectory: /Users/infinity/Code/githubs/flutter_yongwen)

$ grep -r R.icHistory lib
lib/page/infos/main_page.dart:                                  asset: R.icHistory,
lib/widgets/filewidgets/file_preview_icon.dart:      return Imagex.asset(R.icHistory, width: 20, height: 20, color: context.primaryColor);

$ grep -r R.icPen lib
ShellException(grep -r R.icPen lib, exitCode 1, workingDirectory: /Users/infinity/Code/githubs/flutter_yongwen)

$ grep -r R.icTodo lib
ShellException(grep -r R.icTodo lib, exitCode 1, workingDirectory: /Users/infinity/Code/githubs/flutter_yongwen)

$ grep -r R.icDatas lib
ShellException(grep -r R.icDatas lib, exitCode 1, workingDirectory: /Users/infinity/Code/githubs/flutter_yongwen)

$ grep -r R.icSetting lib
lib/page/infos/main_page.dart:                                  asset: R.icSetting,
lib/widgets/filewidgets/file_preview_icon.dart:      return Imagex.asset(R.icSetting, width: 20, height: 20, color: context.primaryColor);

$ grep -r R.icCalender lib
lib/page/infos/main_page.dart:                                  asset: R.icCalender,
lib/widgets/filewidgets/file_preview_icon.dart:      return Imagex.asset(R.icCalender, width: 20, height: 20, color: context.primaryColor);

$ grep -r R.icFavorite lib
lib/page/infos/main_page.dart:                                  asset: R.icFavorite,

$ grep -r R.icDir lib
lib/page/infos/main_page.dart:                                  asset: R.icDir,
lib/page/infos/widgets/tree/tree_collect_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,
lib/widgets/tree/tree_select_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,
lib/widgets/tree/tree_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,

$ grep -r R.icBook lib
ShellException(grep -r R.icBook lib, exitCode 1, workingDirectory: /Users/infinity/Code/githubs/flutter_yongwen)

$ grep -r R.icFile lib
lib/widgets/filewidgets/file_preview_icon.dart:          Imagex.asset(R.icFile, width: width ?? size, height: height ?? size, color: context.primaryColor),

$ grep -r R.icOpenFolder lib
lib/page/infos/widgets/panels/collect_sentence_panel.dart:              child: Imagex.asset(R.icOpenFolder, width: 20, height: 20, color: context.primaryColor),
lib/page/infos/widgets/panels/file_panel.dart:              child: Imagex.asset(R.icOpenFolder, width: 20, height: 20, color: context.primaryColor),

$ grep -r R.icRootFolder lib
lib/page/infos/widgets/tree/tree_collect_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,
lib/widgets/tree/tree_select_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,
lib/widgets/tree/tree_widget.dart:            widget.deep == 0 ? R.icRootFolder : R.icDir,

----------🐝🐝🐝Cannot find reference------------
1. icAvatar
2. icPen
3. icTodo
4. icDatas
5. icBook

更多关于Flutter资源检查插件check_res的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter资源检查插件check_res的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用check_res插件来进行资源检查的一个示例。check_res插件通常用于在构建过程中验证应用的资源文件(如图片、本地化文件等)是否存在,确保没有遗漏或错误引用的资源。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加check_res依赖:

dependencies:
  flutter:
    sdk: flutter
  check_res: ^最新版本号  # 替换为最新的版本号

然后运行flutter pub get来安装依赖。

2. 配置build.yaml

check_res插件使用build_runner来运行构建时检查。你需要在项目的根目录下创建一个或修改现有的build.yaml文件,以配置资源检查规则。

targets:
  $default:
    builders:
      check_res:check_res:
        enabled: true
        options:
          # 在这里配置你需要的检查选项,比如资源目录等
          # 例如,假设你要检查assets目录下的所有图片文件
          resources:
            - assets/**/*.png
            - assets/**/*.jpg

3. 使用build_runner运行检查

在命令行中,导航到你的Flutter项目根目录,然后运行以下命令来执行资源检查:

flutter pub run build_runner check

如果资源文件有缺失或不符合配置的检查规则,check_res将会输出错误信息。

4. 示例代码结构

假设你的项目结构如下:

my_flutter_app/
├── assets/
│   ├── images/
│   │   ├── image1.png
│   │   └── image2.jpg
│   └── locales/
│       ├── en.json
│       └── zh.json
├── lib/
│   └── main.dart
├── pubspec.yaml
└── build.yaml

你的pubspec.yaml中的资源引用可能看起来像这样:

flutter:
  assets:
    - assets/images/image1.png
    - assets/images/image2.jpg
    - assets/locales/en.json
    - assets/locales/zh.json

5. 检查结果

当你运行flutter pub run build_runner check时,check_res将会根据build.yaml中的配置检查assets目录下的资源文件。如果所有文件都存在且符合规则,则不会有错误输出;否则,它会列出缺失或不符合规则的资源文件。

注意

  • check_res的具体配置和使用可能会随着插件版本的更新而变化,请参考插件的官方文档和示例来获取最新的使用指南。
  • 如果check_res插件不支持直接通过build.yaml配置资源检查规则(这种情况较少,因为大多数构建时工具都依赖此文件),你可能需要查阅插件的README文件或源代码,了解如何以编程方式配置检查规则。

希望这个示例能帮助你在Flutter项目中使用check_res插件进行资源检查!

回到顶部