mp-lens
Version:
微信小程序分析工具 (Unused Code, Dependencies, Visualization)
22 lines (21 loc) • 1.22 kB
TypeScript
/**
* 检测项目中未被使用的资源文件(如图片)。
*
* 检测方式:
* - 首先通过 analyzeProject 获取所有可达(reachable)的源文件节点。
* - 在小程序根目录下(miniappRoot)glob 查找所有资源文件(如 png/jpg/svg 等)。
* - 仅用资源文件名(不含路径)作为关键词,使用 Aho-Corasick 算法批量在所有可达文件内容中做字符串匹配。
* - 只要资源文件名在任一可达文件内容中出现,即视为"被引用"。否则视为"未被引用"。
*
* 局限性:
* - 仅基于文件名字符串匹配,无法检测路径级别的精确引用。
* - 无法检测动态拼接、变量引用、base64、网络资源等间接用法。
* - 可能存在误报(如同名但非资源用途的字符串)或漏报(如资源名被拼接、加密、压缩等)。
* - 仅检测源码可达文件,不含 node_modules、构建产物等。
*
* 适合用于大批量资源初步清理,结果建议人工复核。
*
* @param projectRoot 项目根目录(绝对路径)
* @returns 未被引用的资源文件绝对路径数组
*/
export declare function findUnusedAssets(projectRoot: string): Promise<string[]>;