5月29日 01:54

Nuxt.js 的模块和插件有什么区别?

模块(Module)在 Nuxt 初始化阶段执行,能修改构建配置、注册插件和中间件,是 Nuxt 核心扩展机制,通过 nuxt.configmodules 数组注册。插件(Plugin)在 Vue 实例化前后执行,用于注册全局组件、指令或注入实例属性,放在 plugins/ 目录自动注册。关键区别:模块可以注册插件,反过来不行;模块可发布为 npm 包(如 @nuxtjs/axios),插件通常项目内使用。

追问

  • 模块的执行时机为什么比插件早?如果插件需要修改 Nuxt 配置怎么办?
  • modules 数组中的顺序会影响什么?多个模块冲突如何处理?
  • Nuxt 3 中模块和插件的注册方式有什么变化?
  • 如何编写一个可发布的 Nuxt 模块?需要导出什么?
  • 插件的 mode 属性(client/server)在 Nuxt 3 中被什么替代了?

写段代码

js
// nuxt.config.js - 注册模块和插件 export default { modules: ['@pinia/nuxt', '@nuxtjs/i18n'], plugins: ['~/plugins/vue-gtag.client.js'] } // plugins/vue-gtag.client.js export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(VueGtag, { config: { id: 'G-XXX' } }) })
标签:Nuxt.js