You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nuxt应用服务器启动时记录版本?构建后失效如何解决?

问题原因与解决方案

问题原因

你当前的自定义模块中,setup方法里的日志代码是在Nuxt的构建阶段执行的:

  • 开发模式下,每次启动服务都会触发完整的构建流程,所以setup会执行,日志能打印出来;
  • 构建完成后启动服务器时,只会运行已编译好的产物,模块的setup已经在构建阶段执行完毕,不会再触发,因此日志无法输出。

解决方案

方案一:改用服务器启动钩子修改自定义模块

修改你的自定义模块,监听Nuxt的server:start生命周期钩子——这个钩子会在服务器实际启动时触发,不管是开发模式还是构建后启动:

import { defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
    setup(options, nuxt) {
        // 监听服务器启动事件
        nuxt.hook('server:start', () => {
            console.log(`Started version ${options.version}`);
        })
    }
})

这样不管是开发环境启动,还是构建后启动服务器,都会在服务启动时打印版本日志。

方案二:创建服务器插件

直接在Nuxt的服务器插件目录下新建插件,插件会在服务器启动时自动加载执行:

  1. 创建文件server/plugins/startup-log.ts(或.js)
  2. 写入以下代码:
import pkg from '../../package.json'

export default defineNitroPlugin(() => {
  console.log(`Started version ${pkg.version}`)
})

这种方式不需要修改原有的模块配置,直接通过服务器插件实现启动日志打印。

内容的提问来源于stack exchange,提问作者Tom Klino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:44:59