/// export declare type AppType = 'wx' | 'my'; export interface SubPackage { root: string; pages: string[]; } export default class Analyzer { cwd: string; type: AppType; get extnames(): { js: string; json: string; xml: string; css: string; xs: string; svg: string; }; /** * 所有文件路径 */ get all_files(): string[]; /** * 文件路径 => 文件内容 */ file_contents: Record; /** * 文件路径 => 文件依赖 */ file_dependencies: Record; /** * 所有组件 */ components: string[]; /** * 所有页面 */ all_pages: string[]; /** * 主包包含的页面 */ main_pages: string[]; /** * 所有的子包 */ sub_packages: SubPackage[]; /** * * @param cwd - 要分析的路径 * @param type - 小程序类型 */ constructor(cwd: string, type: AppType); /** * 分析依赖 */ analyze(): Promise; /** * 分析页面或组件, 写入依赖缓存 * @remark * * @param target */ analyze_target(target: string): void; /** * 获取所有会被打包入主包的文件 */ get_main_files(): string[]; /** * 获取所有主包依赖的文件 */ get_main_used_files(): string[]; /** * 获取被打包入主包但主包并不依赖的文件 */ get_main_unused_files(): string[]; /** * 获取主子包都不需要的文件 */ get_useless_files(): string[]; /** * 获取所有子包的依赖文件 */ get_sub_used_files(): string[]; /** * 获取子包的依赖 * @param pkg - 子包名称 * @returns */ get_package_dependencies(pkg: SubPackage): string[]; /** * 获取子包依赖但主包不依赖的主包文件 */ get_sub_outside_files(): Record; /** * 获取页面的依赖 * @param target - 页面、组件名称 * @param no_components - 是否包含依赖组件 * @returns */ get_target_dependencies(target: string, no_components?: boolean): string[]; /** * 获取文件依赖 * * @remarks * 包含文件本身 * * @param file - 文件名称 */ protected get_file_dependencies(file: string, ignores?: string[]): string[]; /** * 分析JS的依赖 * @param file - 文件路径 */ private analyze_js; /** * 分析XS的依赖 * @param file - 文件路径 */ private analyze_xs; /** * 分析CSS依赖文件 * @param file - 文件路径 */ private analyze_css; /** * 分析XML依赖 * @param file - 文件路径 */ private analyze_xml; /** * 分析JSON的依赖 * @remarks * `app.json` 或者 组件json * @param file - 文件路径 */ private analyze_json; }