# renderChunk
类型: | RenderChunkHook |
---|---|
类别: | async,sequential |
上一个钩子: | 上一个块的 banner,footer,intro,outro |
下一个钩子: | augmentChunkHash |
type RenderChunkHook = (
code: string,
chunk: RenderedChunk,
options: NormalizedOutputOptions,
meta: { chunks: Record<string, RenderedChunk> }
) => { code: string; map?: SourceMapInput } | string | null;
可以用于转换单个块。对于每个 Rollup 输出块文件都会调用此函数。返回 null 将不应用任何转换。如果你在此钩子中更改了代码并希望支持源映射,则需要返回一个描述更改的map,请参见 源代码转换 部分。
chunk 包含有关块的其他信息,使用与 generateBundle 钩子相同的 ChunkInfo 类型,但有以下区别:
- code 和 map 未设置。而是使用此钩子的 code 参数。
- 所有引用的块文件名将包含哈希占位符,而不是哈希。这包括 fileName,imports,importedBindings,dynamicImports和implicitlyLoadedBefore 。当你在此钩子返回的代码中使用此类占位符文件名或其一部分时,Rollup 将在generateBundle之前将占位符替换为实际哈希,确保哈希反映了最终生成的块的实际内容,包括所有引用的文件哈希。
chunk 是可变的,此钩子中应用的更改将传播到其他插件和生成的产物中。这意味着如果你在此钩子中添加或删除导入或导出,则应更新imports,importedBindings和/或exports。
meta.chunks 包含有关 Rollup 正在生成的所有块的信息,并为哈希使用占位符。这意味着你可以在此钩子中探索整个块图。