@joker.front/cli
Version:
The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.
114 lines (113 loc) • 3.29 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 {
/**
* Write bundles to disk
* @default true
*/
write?: boolean;
/**
* Browser compatibility target
* @default '["es2020", "edge88", "firefox78", "chrome87", "safari13"]'
*/
target?: TransformOptions["target"];
/**
* Customize underlying Rollup configuration
*/
rollupOptions?: RollupOptions;
/**
* Output directory for build artifacts
* @default 'dist'
*/
outDir?: string;
/**
* Generate source maps for bundles
*/
sourcemap?: boolean;
/**
* Directory (relative to outDir) to place generated assets
* @default 'assets'
*/
assetsDir?: string;
/**
* Inline assets below this size (in bytes) as base64 URLs
* @default 4096
*/
assetsInlineLimit?: number;
/**
* Minify output
* @default 'esbuild'
*/
minify?: boolean | "esbuild" | "terser";
/**
* Library mode options for building packages
*/
lib?: LibraryOptions | false;
/**
* Warn when a chunk exceeds this size (in kilobytes)
* @default 500
*/
chunkSizeWarningLimit?: number;
/**
* CSS transformation target
*/
cssTarget?: TransformOptions["target"];
/**
* Copy files from publicDir to outDir
* @default true
*/
copyPublicDir?: boolean;
/**
* Base URL for static asset serving
*/
publicBaseDir?: string;
/**
* Options for terser
* https://terser.org/docs/api-reference#minify-options
*/
terserOptions?: any;
/**
* Options for worker bundles
*/
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;
};