nuxt-particles
Version:
Run lightweight, heavily customizable particle simulations in your Nuxt project with tsParticles.
36 lines (33 loc) • 938 B
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addComponent } from '@nuxt/kit';
import defu from 'defu';
const module = defineNuxtModule({
meta: {
name: "nuxt-particles",
configKey: "particles",
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: "NuxtParticles",
filePath: resolver.resolve("./runtime/components/NuxtParticles.vue")
});
}
});
export { module as default };