Nuxt.js module for Segment Analytics
This module uses vue-segment to add Segment Analytics to a Nuxt.js app.
- Add
@dansmaculotte/nuxt-segmentdependency using yarn or npm to your project - Add
@dansmaculotte/nuxt-segmenttomodulessection ofnuxt.config.js
- Configure it:
{
modules: [
// Simple usage
'@dansmaculotte/nuxt-segment',
// With options
[
'@dansmaculotte/nuxt-segment',
{ /* module options */ }
],
],
// Or with global options
segment: {
writeKey: '',
disabled: false,
useRouter: true
}
// Or with publicRuntimeConfig
publicRuntimeConfig: {
SEGMENT_WRITE_KEY: process.env.SEGMENT_WRITE_KEY_FROM_SERVER || '',
SEGMENT_DISABLED: process.env.SEGMENT_DISBLED_FROM_SERVER || false,
SEGMENT_USE_ROUTER: process.env.SEGMENT_USE_ROUTER_FROM_SERVER || true,
}
}- Type:
String- Default:
process.env.SEGMENT_WRITE_KEY || publicRuntimeConfig.SEGMENT_WRITE_KEY
- Default:
- Type:
Boolean- Default:
process.env.SEGMENT_DISABLED || publicRuntimeConfig.SEGMENT_DISABLED || false
- Default:
- Type:
Boolean- Default:
process.env.SEGMENT_USE_ROUTER || publicRuntimeConfig.SEGMENT_USE_ROUTER || true
- Default:
Inside a Vue component, the Segment analytics object is available as this.$segment:
export default {
mounted () {
this.$segment.identify('f4ca124298', {
name: 'Michael Bolton',
email: '[email protected]'
});
this.$segment.track('Signed Up', { plan: 'Enterprise' });
this.$segment.page('Pricing');
}
}$segment is also injected into the Nuxt context so you can access it within your Vuex stores:
export default {
LOGOUT({ dispatch }) {
return this.$auth.logout()
.then(() => {
this.$segment.reset();
return dispatch('AFTER_LOGOUT');
})
}
}- Clone this repository
- Install dependencies using
yarn install - Start development server using
npm run dev