/// import Analyzer from './analyzer'; import type { AppType, SubPackage } from './analyzer'; interface Plugin { name?: string; run: (this: Optimizer, config: T) => void; } declare type PluginConfig = string | [string, T] | Plugin | [Plugin, T]; export interface OptimizerConfig { output?: string; removeUselessFile?: boolean; uselessExculde?: string[]; renameFile?: boolean; renameExculde?: string[]; renamedFilesMap?: string; renameComponent?: boolean; includesSubPackage?: boolean; removeUnusedComponent?: boolean; renamedComponentsMap?: string; minifyJs?: boolean; autoReplace?: boolean; placeholders?: Record; mergeImport?: boolean; minifyJson?: boolean; minifyXml?: boolean; minifyCss?: boolean; minifyXs?: boolean; plugins?: PluginConfig[]; } export default class Optimizer extends Analyzer { config: OptimizerConfig; constructor(cwd: string, type: AppType, config?: OptimizerConfig); run(write?: boolean): Promise>; /** * 移除文件 */ remove_files(files: string[]): void; /** * 获取所有可以重命名的文件 * * @remarks * 仅处理主包的文件 * * 1. 不重命名 `app.js` `app.json` 等 * 2. 页面路由的四个文件不重命名 * 3. custom-tab-bar 文件夹下四个文件不重命名 * */ private get_renamable_files; /** * 移动主包文件到子包的 _ 目录或者重命名主包文件 * @param files * @param key */ private move_files; /** * 处理 组件 自动设置placeholder */ autoReplace(): void; get_renamable_files_of_sub_package(sub_package: SubPackage): string[]; write(): Promise; protected optimize_js(file: string): void; private optimize_xs; private remove_useless_component; private rename_component; protected rename_tag(file: string, old_new_map: Record): void; protected optimize_css(file: string): Promise; protected optimize_xml(file: string): void; protected optimize_json(file: string): void; /** * 变更`import` `require` `export .. from`的引用路径 * @param file - 原始文件 * @param old_new_map - 新旧文件名Map */ private convert_js; /** * 变更`require`的引用路径 * @param file - 原始文件 * @param old_new_map - 新旧文件名Map */ private convert_xs; /** * 修改 xml 的引用路径 * @param file - 原始文件 * @param old_new_map - 新旧文件名Map */ private convert_xml; /** * 替换 `@import` 的引用路径 * @param file - 原始文件 * @param old_new_map - 新旧文件名Map */ private convert_css; /** * * @param file * @param old_new_map */ private convert_json; } export {};