5月29日 01:54
Nuxt.js 的模块和插件有什么区别?
模块(Module)在 Nuxt 初始化阶段执行,能修改构建配置、注册插件和中间件,是 Nuxt 核心扩展机制,通过 nuxt.config 的 modules 数组注册。插件(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' } }) })