@joker.front/cli
Version:
The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.
51 lines (50 loc) • 1.64 kB
TypeScript
import type { CustomPluginOptions, Plugin as RollupPlugin, PluginContext, ResolveIdResult } from "rollup";
import { Config, ResolvedConfig } from "./config";
import { Server } from "./server";
import { HMRContext } from "./server/hmr";
import { ModuleNode } from "./server/moduleMap";
import { IndexHtmlTransform } from "./utils/html";
export interface Plugin extends RollupPlugin {
/**
* 执行顺序
* prev前置预处理
* post构建后处理
*/
enforce?: "pre" | "post";
/**
* 触发场景,空代表全部执行
*/
apply?: Config["command"] | "all";
/**
* 配置server把柄
*/
configureServer?: (server: Server) => void | Promise<void>;
/**
* 配置文件转换
*/
configTransform?: (config: ResolvedConfig) => Promise<void> | void;
/**
* 首页html转换Hook方法
* 可通过该钩子实现:注入入口脚本等等
*/
indexHtmlTransform?: IndexHtmlTransform;
/**
* 扩展rollup中的options,添加scan属性
*/
resolveId?: (this: PluginContext, source: string, importer: string | undefined, options: {
custom?: CustomPluginOptions;
isEntry: boolean;
scan?: boolean;
}) => Promise<ResolveIdResult> | ResolveIdResult;
/**
* 热更新模块Update上下文
* 可以通过该hook实现对modules等属性的更新
* @param ctx
*/
hmrUpdate?(ctx: HMRContext, server: Server): ModuleNode[] | void | Promise<ModuleNode[] | void>;
}
export declare function sortPlugins(plugins: Plugin[]): {
pre: Plugin[];
normal: Plugin[];
post: Plugin[];
};