Flutter/Dart 查找未使用的文件或小部件

Web*_*ter 1 dart android-studio flutter

我正在处理一个现有的应用程序,它有太多未使用的文件或小部件,我需要找到所有并清理代码

如何在 flutter/dart 环境中找到未使用的文件/小部件?我使用 android studio 作为我的 IDE

mar*_*erz 24

2023/08/23,根据 Tommy Chang 等人的评论,GitHub 包已停止使用,不再受支持。目前,它仅作为付费服务提供,每月费用为 8 美元。但是,截至目前,它仍然可以运行,但将您的项目限制为较旧的软件包版本。

https://github.com/dart-code-checker/dart-code-metrics

Dart 代码指标:https://pub.dev/packages/dart_code_metrics 支持查找 Flutter 未使用的文件。

安装:

      flutter pub add --dev dart_code_metrics
Run Code Online (Sandbox Code Playgroud)

运行“flutter packages get”或使用 IDE 来“Pub get”。

跑步:

     dart run dart_code_metrics:metrics check-unused-files lib
Run Code Online (Sandbox Code Playgroud)

结果:

    Unused file: lib/generated_plugin_registrant.dart
    Unused file: lib/ux/Pdf/makepdfdocument.dart
    Unused file: lib/ux/RealEstate/realestatetable.dart
...
Total unused files: 11
Run Code Online (Sandbox Code Playgroud)

如何查找未使用的 dart 或 flutter 文件(中)

dart-code-metrics 简介(中)

代码度量还可以提供以下方面的见解:

  • 圈复杂度
  • 代码行数
  • 最大嵌套数
  • 方法数量
  • 参数数量
  • 源代码行
  • 班级权重

  • 该软件包已停产,不再维护。相反,该公司转而提供付费服务。找到替代解决方案会很高兴。 (2认同)

小智 6

一种选择是使用带有 find 和 grep 的 bash 脚本。这会检查是否有任何文件未导入到其他文件中(main.dart通常在该列表中,但其他文件不应该在列表中)。在某些边缘情况下它可能会失败,但对我的用例来说效果很好,也可能对您有所帮助。

脚本必须放在项目的根文件夹中,所有代码都应该在lib/目录中。

我只是用它删除了我项目中 15 个未使用的文件,我已经感觉轻松了 :)

#!/bin/bash
  

cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1

find lib/ -name *.dart -print0 | while read -d $'\0' file
do
        name="$(basename ${file})"
        grep -rn -F -q "${name}" lib/
        if [ $? -ne 0 ]
        then
                echo "Unused file: ${file}"
        fi
done
Run Code Online (Sandbox Code Playgroud)

在 linux 上测试过,但也应该在 windows 上的 macos 和 bash 上工作(也许有一些小的修改(find 和 grep 可能有一些其他标志))。