我正在使用一个相当大的Qt/QML代码库,我正在寻找检测和删除所有未使用的QML导入的方法。如何做到这一点?有没有办法自动化它?
我相信删除未使用的QML导入是保持代码库干净的好方法。此外,根据QML编码指南,它将提高加载性能:
导入在 QML 中需要时间。如果您正在为系统规格较低的设备进行开发,那么您将需要尽可能多地进行优化。在这种情况下,请尝试尽量减少在 QML 文件中使用的导入次数。
将近两年后,我找到了一种传统的方法,由Qt通过他们的工具qmlLint提供:
您现在可以按类别禁用警告,例如通过 默认 QMLLINT 将通知您有关未使用的导入:
import QtQuick import QtQuick3D // Info: DEM.qml:2:1: Unused import at DEM.qml:2:1 Text { id: textElement text: "Hello world!" anchors.centerIn: parent }
如果您愿意,您现在可以通过传递来抑制此信息 --未使用的导入禁用。或者,您可以使用 --未使用的导入警告将此信息性消息转换为完整的警告。在那 在这种情况下,与所有警告一样,未使用的导入警告将使 qmllint 返回退出代码 1 ;这将导致任何 CI 失败 或使用该工具的预提交钩子。查看 qmllint 的输出 --帮助获取警告类别的完整列表。
来源 : https://www.qt.io/blog/whats-new-in-qml-tooling-in-qt-6.2
您可以解析每个 QML 文件并在代码中搜索 QML 依赖项,然后删除winqtqmldeploy
复制的所有其他依赖项。