Skip to content

Nuxt.js module for Segment Analytics.js

License

Notifications You must be signed in to change notification settings

dansmaculotte/nuxt-segment

Folders and files

NameName
Last commit message
Last commit date
Mar 9, 2022
Nov 19, 2019
Nov 17, 2018
May 3, 2019
May 3, 2019
Nov 17, 2018
Mar 11, 2022
Apr 4, 2019
Dec 3, 2021
May 3, 2019
May 3, 2019
May 3, 2019
May 3, 2019
Mar 11, 2022
May 3, 2019
Jan 5, 2023

Repository files navigation

nuxt-segment

npm version npm downloads Dependencies Standard JS

Nuxt.js module for Segment Analytics

This module uses vue-segment to add Segment Analytics to a Nuxt.js app.

📖 Release Notes

Setup

  • Add @dansmaculotte/nuxt-segment dependency using yarn or npm to your project
  • Add @dansmaculotte/nuxt-segment to modules section of nuxt.config.js
  1. 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,
  }
}

Options

writeKey

  • Type: String
    • Default: process.env.SEGMENT_WRITE_KEY || publicRuntimeConfig.SEGMENT_WRITE_KEY

disabled

  • Type: Boolean
    • Default: process.env.SEGMENT_DISABLED || publicRuntimeConfig.SEGMENT_DISABLED || false

useRouter

  • Type: Boolean
    • Default: process.env.SEGMENT_USE_ROUTER || publicRuntimeConfig.SEGMENT_USE_ROUTER || true

Usage

Inside a Vue component, the Segment analytics object is available as this.$segment:

export default {
  mounted () {
    this.$segment.identify('f4ca124298', {
      name: 'Michael Bolton',
      email: 'mbolton@initech.com'
    });
    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');
      })
  }
}

Development

  • Clone this repository
  • Install dependencies using yarn install
  • Start development server using npm run dev

License

MIT License