UNPKG

nuxt-gtag

Version:
53 lines (49 loc) 1.28 kB
import { defineNuxtModule, createResolver, addImports, addPlugin } from '@nuxt/kit'; import { defu } from 'defu'; const name = "nuxt-gtag"; const version = "4.0.0"; const module = defineNuxtModule({ meta: { name, version, configKey: "gtag", compatibility: { nuxt: ">=3.7" } }, defaults: { enabled: true, initMode: "auto", id: "", initCommands: [], config: {}, tags: [], loadingStrategy: "defer", url: "https://www.googletagmanager.com/gtag/js" }, setup(options, nuxt) { const { resolve } = createResolver(import.meta.url); if (!options.enabled) { addImports(["useGtag", "useTrackEvent"].map((name2) => ({ from: resolve(`runtime/composables/${name2}Mock`), name: `${name2}Mock`, as: name2 }))); return; } nuxt.options.runtimeConfig.public.gtag = defu( nuxt.options.runtimeConfig.public.gtag, options ); nuxt.options.build.transpile.push(resolve("runtime")); addImports(["useGtag", "useTrackEvent"].map((name2) => ({ from: resolve(`runtime/composables/${name2}`), name: name2 }))); addPlugin({ src: resolve("runtime/plugin.client"), mode: "client" }); } }); export { module as default };