v-plausible
Version:
Plausible Analytics plugin for Vue or Nuxt
57 lines (53 loc) • 1.48 kB
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addImports } from '@nuxt/kit';
import { defu } from 'defu';
const name = "v-plausible";
const version = "1.2.0";
const module = defineNuxtModule({
meta: {
name,
version,
configKey: "plausible",
compatibility: {
nuxt: "^3.1.1"
}
},
defaults: {
init: {
domain: "localhost",
apiHost: "https://plausible.io",
trackLocalhost: false
},
settings: {
enableAutoOutboundTracking: false,
enableAutoPageviews: true
},
partytown: false
},
setup(options, nuxt) {
const { resolve } = createResolver(import.meta.url);
nuxt.options.runtimeConfig.public.plausible = defu(options, {
init: {
domain: "localhost",
apiHost: "https://plausible.io",
trackLocalhost: false
},
settings: {
enableAutoOutboundTracking: false,
enableAutoPageviews: true
},
partytown: false
});
nuxt.options.vite.optimizeDeps = nuxt.options.vite.optimizeDeps || {};
nuxt.options.vite.optimizeDeps.exclude = nuxt.options.vite.optimizeDeps.exclude || [];
nuxt.options.vite.optimizeDeps.exclude.push("plausible-tracker");
addPlugin({ src: resolve("./runtime/plugin"), mode: "client" });
addImports([
...["usePlausible"].map((key) => ({
name: key,
as: key,
from: resolve("./runtime/composables")
}))
]);
}
});
export { module as default };