npm.io
4.3.2 • Published 1 month ago

@tsparticles/plugin-emitters

Licence
MIT
Version
4.3.2
Deps
0
Size
358 kB
Vulns
0
Weekly
0
Stars
9.0K

banner

tsParticles Emitters Plugin

jsDelivr npmjs npmjs GitHub Sponsors

tsParticles plugin for particles emitters.

Quick checklist

  1. Install @tsparticles/engine (or use the CDN bundle below)
  2. Call the package loader function(s) before tsParticles.load(...)
  3. Apply the package options in your tsParticles.load(...) config

How to use it

CDN / Vanilla JS / jQuery

The CDN/Vanilla version JS has one required file in vanilla configuration:

Including the tsparticles.plugin.emitters.min.js file will export the function to load the plugin:

loadEmittersPlugin;
Usage

Once the scripts are loaded you can set up tsParticles and the plugin like this:

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);

  await tsParticles.load({
    id: "tsparticles",
    options: {/* options */},
  });
})();
ESM / CommonJS

This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:

$ npm install @tsparticles/plugin-emitters

or

$ yarn add @tsparticles/plugin-emitters

Then you need to import it in the app, like this:

const { tsParticles } = require("@tsparticles/engine");
const { loadInteractivityPlugin } = require("@tsparticles/plugin-interactivity");
const { loadEmittersPlugin } = require("@tsparticles/plugin-emitters");

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);
})();

or

import { tsParticles } from "@tsparticles/engine";
import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity";
import { loadEmittersPlugin } from "@tsparticles/plugin-emitters";

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);
})();
Granular loading

Instead of the full loadEmittersPlugin, you can import only the parts you need to reduce bundle size:

  • Plugin only (emitter lifecycle and drawing):
    import { loadEmittersPluginSimple } from "@tsparticles/plugin-emitters/plugin";
  • Interaction only (click/hover on emitters):
    import { loadEmittersInteraction } from "@tsparticles/plugin-emitters/interaction";

Lazy-loaded variants are also available by appending /lazy to the import path:

import { loadEmittersPluginSimple } from "@tsparticles/plugin-emitters/plugin/lazy";
import { loadEmittersInteraction } from "@tsparticles/plugin-emitters/interaction/lazy";

Option mapping

  • Primary options key: emitters
{
  "emitters": {}
}

Common pitfalls

  • Calling tsParticles.load(...) before loadInteractivityPlugin(...)
  • Verify required peer packages before enabling advanced options
  • Change one option group at a time to isolate regressions quickly

Keywords