The Mixpanel JavaScript Library is a set of methods attached to a global mixpanel
object
intended to be used by websites wishing to send data to Mixpanel projects. A full reference
is available here.
This library is available as a package on NPM (named mixpanel-browser
to distinguish it from Mixpanel's server-side Node.js library, available on NPM as mixpanel
). To install into a project using NPM with a front-end packager such as Vite or Webpack:
npm install --save mixpanel-browser
You can then import the lib:
import mixpanel from 'mixpanel-browser';
mixpanel.init("YOUR_TOKEN");
mixpanel.track("An event");
NOTE: the default mixpanel-browser
bundle includes a bundled mixpanel-recorder
SDK. We provide the following options to exclude mixpanel-recorder
if you do not intend to use session replay or want to reduce bundle size:
To load the core SDK with no option of session recording:
import mixpanel from 'mixpanel-browser/src/loaders/loader-module-core';
To load the core SDK and optionally load session recording bundle asynchronously (via script tag):
import mixpanel from 'mixpanel-browser/src/loaders/loader-module-with-async-recorder';
If you are leveraging browser JavaScript modules, you can use importmap
to pull in this library.
<script type="importmap">
{
"imports": {
"mixpanel-browser": "https://cdn.mxpnl.com/libs/mixpanel-js/dist/mixpanel.module.js"
}
}
</script>
<script type="module" src="main.js"></script>
Then you are free to import mixpanel-browser
in your javascript modules.
// main.js
import mixpanel from 'mixpanel-browser';
mixpanel.init('YOUR_TOKEN', {debug: true, track_pageview: true, persistence: 'localStorage'});
- Install development dependencies:
npm install
- Build:
npm run build-dist
- Install development dependencies:
npm install
- Run unit tests:
npm test
- Start test server for browser tests:
npm run integration_test
- Browse to http://localhost:3000/tests/ and choose a scenario to run
In the future we plan to automate the last step with a headless browser to streamline development (although Mixpanel production releases are tested against a large matrix of browsers and operating systems).
- Create bundled source build:
npm run build-dist
- Generate Markdown:
npm run dox
(result is atdoc/readme.io/javascript-full-api-reference.md
) - Publish to readme.io via the rdme util:
RDME_API_KEY=<API_KEY> RDME_DOC_VERSION=<version> npm run dox-publish
For patches and support: @bohanyang, @dehau, @drubin, @D1plo1d, @feychenie, @mogstad, @pfhayes, @sandorfr, @stefansedich, @gfx, @pkaminski, @austince, @danielbaker, @mkdai, @wolever, @dpraul, @chriszamierowski, @JoaoGomesTW, @@aliyalcinkaya