///
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;
}