# generateBundle
类型: | (options: OutputOptions, bundle: { [fileName: string]: AssetInfo | ChunkInfo }, isWrite: boolean) => void |
---|---|
类别: | async, sequential |
上一个钩子: | augmentChunkHash |
下一个钩子: | 如果输出是通过 bundle.write(...) 生成的,则为 writeBundle,否则这是输出生成阶段的最后一个钩子,并且可能再次跟随 outputOptions,如果生成了另一个输出。 |
interface AssetInfo {
fileName: string;
name?: string;
needsCodeReference: boolean;
source: string | Uint8Array;
type: 'asset';
}
interface ChunkInfo {
code: string;
dynamicImports: string[];
exports: string[];
facadeModuleId: string | null;
fileName: string;
implicitlyLoadedBefore: string[];
imports: string[];
importedBindings: { [imported: string]: string[] };
isDynamicEntry: boolean;
isEntry: boolean;
isImplicitEntry: boolean;
map: SourceMap | null;
modules: {
[id: string]: {
renderedExports: string[];
removedExports: string[];
renderedLength: number;
originalLength: number;
code: string | null;
};
};
moduleIds: string[];
name: string;
referencedFiles: string[];
type: 'chunk';
}
在 bundle.generate() 结束时或在 bundle.write() 写入文件之前立即调用。要在写入文件后修改文件,请使用 writeBundle 钩子。bundle 提供正在写入或生成的文件的完整列表以及它们的详细信息。
你可以通过在此钩子中从产物对象中删除它们来防止文件被发出。要发出其他文件,请使用 this.emitFile 插件上下文函数。
DANGER
不要直接将静态资源添加到产物中。这会绕过 Rollup 用于跟踪静态资源的内部机制。它还可能导致你的静态资源缺少 Rollup 在内部依赖的重要属性,因此你的插件可能会因为 Rollup 的小版本更新而出现问题。
相反,请始终使用 this.emitFile。