# 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 正在生成的所有块的信息,并为哈希使用占位符。这意味着你可以在此钩子中探索整个块图。

Last Updated: 6/14/2023, 8:56:23 AM