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

Nuxt v2升级v3后yarn build报错:Cannot read properties of undefined (reading 'hook')

问题分析

报错Cannot read properties of undefined (reading 'hook')的核心原因是原bootstrap-vue的Nuxt模块是为Nuxt v2设计的,其模块API与Nuxt v3不兼容。Nuxt v3采用了全新的函数式模块API,不再通过this.nuxt访问Nuxt实例,而旧模块仍在使用Nuxt v2的类式上下文写法,导致找不到hook方法。

解决方案

方案1:替换为Nuxt v3兼容的Bootstrap Vue包

原bootstrap-vue仅支持Vue 2和Nuxt 2,你需要切换到支持Vue 3/Nuxt 3的替代方案:

  • 使用bootstrap-vue-3(专为Vue 3适配的Bootstrap Vue实现),安装后在Nuxt 3中配置使用。
  • 或者直接使用Bootstrap 5 + Vue 3的原生组合,手动引入Bootstrap样式和Vue组件。

方案2:适配Nuxt v3模块API(不推荐,需修改依赖文件)

如果暂时无法替换包,可手动修改node_modules/bootstrap-vue/nuxt/index.js中的模块代码,适配Nuxt 3的模块规范:

// 替换原有代码为Nuxt 3模块格式
export default defineNuxtModule({
  meta: {
    name: 'bootstrap-vue',
    configKey: 'bootstrapVue'
  },
  defaults: {},
  setup(moduleOptions, nuxt) {
    nuxt.hook('build:before', () => {
      const options = {
        ...nuxt.options.bootstrapVue,
        ...moduleOptions
      }
      // 后续原有逻辑保持不变
    })
  }
})

注意:修改node_modules文件属于临时方案,后续依赖更新会覆盖修改,仅作为应急使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:22:05