@joker.front/cli
Version:
The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.
106 lines (105 loc) • 3.04 kB
TypeScript
import type { TransformOptions } from "esbuild";
import type { InternalModuleFormat, LoggingFunction, ModuleFormat, RollupLog, RollupOptions, RollupOutput } from "rollup";
import { ResolvedConfig } from "./config";
import { Plugin as RollupPlugin } from "rollup";
export interface BuildOptions {
/**
* 是否输出
* @default true
*/
write?: boolean;
/**
* 输出目标模式
* @default '["es2020", "edge88", "firefox78", "chrome87", "safari13"]'
*/
target?: TransformOptions["target"];
/**
* roolup配置
*/
rollupOptions?: RollupOptions;
/**
* 产物输出路径
* @default 'dist'
*/
outDir?: string;
/**
* 是否输出sourcemap
*/
sourcemap?: boolean;
/**
* 路径为outDir的相对路径,存放js/css/image构建资产
* @default 'assets'
*/
assetsDir?: string;
/**
* 资源大小限制,小于限制时,则使用dataUrl方式集成
* @default 4096
*/
assetsInlineLimit?: number;
/**
* 是否开启压缩
* @default 'esbuild'
*/
minify?: boolean | "esbuild" | "terser";
/**
* 以libaray模式构建,并可配置模块的引用类型esm、cjs、umd
*/
lib?: LibraryOptions | false;
/**
* 分包大小限制(警告处理)
* @default 500
*/
chunkSizeWarningLimit?: number;
cssTraget?: TransformOptions["target"];
/**
* 是否copy public
* @default true
*/
copyPublicDir?: boolean;
/**
* 静态资源服务地址
*/
publicBaseDir?: string;
/**
* worker 编译扩展信息
*/
worker?: {
rollupOptions?: RollupOptions;
plugins?: (input: string) => Promise<RollupPlugin>;
};
}
export declare function resolveBuildOpt(config: Partial<ResolvedConfig>): void;
export interface LibraryOptions {
/**
* 入口文件
*/
entry: string;
/**
* 别名
*/
name?: string;
/**
* 输出类型
* @default [es,umd]
*/
formats?: LibraryFormatType[];
/**
* 输出文件名称,不配置则按原文件输出
*/
fileName?: string | ((format: ModuleFormat) => string);
}
export type LibraryFormatType = "es" | "cjs" | "umd" | "iife";
/**
* 构建主入口,控制主流程,支持并行多任务构建
* @param config
*/
export declare function build(config: ResolvedConfig): Promise<RollupOutput | RollupOutput[]>;
export declare function onRollupWarning(config: ResolvedConfig, warnings: RollupLog, warn: LoggingFunction): void;
/**
* 获取output文件路径
* @returns 返回实际地址<string> 或者 返回runtime运行时执行语法
*/
export declare function toOutputFilePath<T>(filename: string, hostId: string, config: ResolvedConfig, toRelative: (fileName: string, hostId: string) => T): T | string;
export declare function createToImportMetaURLBasedRelativeRuntime(format: InternalModuleFormat): (filename: string, importer: string) => {
runtime: string;
};