import type { InputOptions as RollupInputOptions, OutputOptions as RollupOutputOptions } from 'rollup'; import type { Options as AutoprefixerOptions } from 'autoprefixer'; import type { PostCSSPluginConf } from 'rollup-plugin-postcss'; import type { $Keys, Format, Banner, Target, PostcssModulesOptions, PackageJson as BasePackageJson } from '@walrus/build-types'; import { Alias } from '@rollup/plugin-alias'; export interface Asset { absolute: string; source: string; } export declare type Assets = Map; export declare type Task = { format: Format; inputOptions: RollupInputOptions; outputOptions: RollupOutputOptions; }; export interface PackageJson extends BasePackageJson { [key: string]: any; } export declare type PluginConfig = boolean | { beforePosition?: string; afterPosition?: string; [key: string]: any; }; /** lerna多项目过滤 */ export interface FilterPackages { /** * 是否按照依赖进行排序处理 * @default true */ stream?: boolean; /** 指定包含的包 */ include?: string[]; /** 指定排除的包 */ exclude?: string[]; /** * 是否包含私有的包 * @default false */ showPrivate?: boolean; } /** 编译配置 */ export interface BaseOptions { /** 当前的工作目录 */ cwd: string; /** UMD 和 IIFE 中公开的名称 */ name: string; /** 入口文件 */ entries: string[]; /** 打包输出格式 */ formats: Format[]; /** 指定tsconfig.json路径 */ tsconfig: string; /** * 是否禁用类型检查 * @default false */ disableTypeCheck: boolean; /** * 是否使用默认的tsconfig.json * @default true */ useDefaultTsconfig: boolean; /** * 是否向上查找tsconfig.json * @default true */ findTsconfig: boolean; /** * 是否使用配置文件,支持以下文件 * 'build.config.ts', * 'build.config.js', * '.buildrc.ts', * '.buildrc.js' */ useConfigFile: boolean; /** * 指定输出目录 * @default `dist` */ output: string; /** * 是否开启严格模式 * @default true */ strict: boolean; /** * 是否压缩 * @default false */ compress: boolean; /** * 是否生成sourcemap * @default true */ sourcemap: boolean; /** * 是否使用package.json中的配置 * @default true */ pkgMain: boolean; /** banner配置 */ banner: Banner; /** * 配置是 node 库还是 browser 库,只作用于语法层 * @default `browser` */ target: Target; /** * 替换代码 * @rollup/plugin-replace */ replace: Record; /** * css-modules配置 * 透传给 https://github.com/css-modules/postcss-modules */ cssModules: boolean | Partial; /** autoprefixer插件配置 */ autoprefixer: AutoprefixerOptions; /** umd/iife 包中外部导入所需的变量名对 */ globals: RollupOutputOptions['globals']; /** 插件配置 */ plugins: { [name: string]: PluginConfig; }; resolvePlugins?: { [name: string]: any; }; /** external */ externals: string[]; } export interface Options extends Required> { /** UMD 和 IIFE 中公开的名称 */ name?: string; /** tsconfig.json路径 */ tsconfig?: string; /** package.json 信息 */ pkg: PackageJson; /** 是否是多个入口 */ multipleEntries: boolean; /** 过滤处理包,lerna项目下有效 */ filterPackages?: FilterPackages; /** 别名设置 */ alias: readonly Alias[]; /** rollup-plugin-postcss 配置参数 */ postcss?: PostCSSPluginConf; } export interface InputOptions extends Partial { /** 过滤处理包,lerna项目下有效 */ filterPackages?: FilterPackages; /** 别名设置 */ alias?: readonly Alias[] | { [find: string]: string; }; /** rollup-plugin-postcss 配置参数 */ postcss?: PostCSSPluginConf; } export interface RunOptions { watch?: boolean; prefixText?: string; } export { $Keys, Format, Target, Alias, PostcssModulesOptions, };