nuxt4-particles
Version:
Run lightweight, heavily customizable particle simulations in your Nuxt project with tsParticles.
39 lines (36 loc) • 971 B
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addComponent } from '@nuxt/kit';
import defu from 'defu';
const module = defineNuxtModule({
meta: {
name: "nuxt4-particles",
configKey: "particles4",
compatibility: {
nuxt: ">=3.7.0"
}
},
// Default configuration options of the Nuxt module
defaults: {
mode: "full",
lazy: true
},
setup(options, nuxt) {
const resolver = createResolver(import.meta.url);
if (!options.lazy && options.mode !== "custom") {
addPlugin(resolver.resolve("./runtime/plugins/particle-loader.client"));
}
nuxt.options.runtimeConfig.public = defu(
nuxt.options.runtimeConfig.public || {},
{
particles: {
mode: options.mode,
lazy: options.lazy
}
}
);
addComponent({
name: "Nuxt4Particles",
filePath: resolver.resolve("./runtime/components/Nuxt4Particles.vue")
});
}
});
export { module as default };