@haiyulu/bundle-optimizer
Version:
uni-app 分包优化插件化实现
68 lines (60 loc) • 1.84 kB
TypeScript
import { PluginOption } from 'vite';
interface ISubPkgsInfo {
root: string
independent: boolean
}
interface IDtsOptions {
/**
* 是否开启类型定义文件生成(可选)
*
* @description 默认为true,即开启类型定义文件生成
* @default true
*/
enable?: boolean
/**
* 类型定义文件生成的基础路径(可选)
*
* @description 默认为项目根目录
* @description 可以相对路径,也可以绝对路径
* @default './'
*/
base?: string
/**
* 类型定义文件名(可选)
*
* @description 默认为`async-import.d.ts`或`async-component.d.ts`
* @default 'async-import.d.ts' | 'async-component.d.ts'
*/
name?: string
/**
* 类型定义文件生成路径(可选)
*
* @description 默认为`${base}/${name}`
* @description 但是如果指定了此`path`字段,则以`path`为准,优先级更高
* @description 可以相对路径,也可以绝对路径
* @default `${base}/${name}`
*/
path?: string
}
type DtsType = false | { enable: boolean, path: string }
type Enable = 'optimization' | 'async-component' | 'async-import'
interface IOptions {
/**
* 插件功能开关(可选)
*
* @description 默认为true,即开启所有功能
*/
enable?: boolean | Partial<Record<Enable, boolean>>
/**
* dts文件输出配置(可选)
*
* @description 默认为true,即在项目根目录生成类型定义文件
*/
dts?: Partial<Omit<IDtsOptions, 'name' | 'path'> & Record<Exclude<Enable, 'optimization'>, IDtsOptions | boolean>> | boolean
/**
* log 控制,默认不启用,为false
*/
logger?: boolean | Enable[]
}
declare const _default: (options?: IOptions) => PluginOption;
export { type DtsType, type IOptions, type ISubPkgsInfo, _default as default };