寻找Nuxt 3静态生成(SSG)结束阶段适用的生命周期钩子
适用于SSG结束阶段执行任务的Nuxt钩子
针对你开发Nuxt模块、在静态生成(SSG)临近结束或结束时检查.output/public/目录并写入报告的需求,推荐以下几个生命周期钩子:
nitro:build:public-assets:这个钩子在Nitro完成公共资产构建后触发,此时.output/public/目录的内容已基本确定,适合执行目录内容检查和报告生成。nitro:build:done:这是Nitro构建流程的最后一个钩子,整个SSG生成流程完全结束后触发,所有静态文件都已生成完毕,此时操作.output/public/目录能确保拿到最终的完整内容。generate:done:如果是基于Nuxt 3的静态生成命令(nuxi generate),这个钩子会在整个静态生成任务完成后立即触发,直接对应SSG流程的收尾阶段,非常契合你的需求。
使用示例(以Nuxt模块形式):
export default defineNuxtModule({ setup(options, nuxt) { // 使用generate:done钩子 nuxt.hooks.hook('generate:done', async () => { // 在这里编写检查.output/public/目录并写入报告的逻辑 const publicDir = join(nuxt.options.nitro.output.publicDir, '/') // 执行目录扫描、生成报告并写入磁盘 }) // 或者使用nitro:build:done钩子 nuxt.hooks.hook('nitro:build:done', async (nitro) => { const publicDir = nitro.options.output.publicDir // 处理逻辑 }) } })
内容的提问来源于stack exchange,提问作者JB0x2D1
相关产品推荐
相关产品推荐

