UNPKG

@joker.front/cli

Version:

The Next-Generation Front-End Toolchain: Swift, Efficient, and Adaptive.

51 lines (50 loc) 1.64 kB
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[]; };