How do i add client side js libraries in Nuxt>

Viewed 5325

First time on nuxt. i am trying to add a client side library.

In a normal html i will just add it to my index.html file. But i have no idea how do i do the same on nuxt.

How do i add it?

this is my config

module.exports = {

  /*
  ** Headers of the page
  */
  head: {
    title: 'digglu',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'social media site' },
      { name: 'google-signin-client_id', content:'xxx.apps.googleusercontent.com' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress-bar color
  */
  loading: { color: '#3B8070' },
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLINT on save
    */
    extend (config, ctx) {
      if (ctx.dev && ctx.isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  }
}
2 Answers

According to the Nuxt documentation you can use a naming convention or object syntax for that in your nuxt.config.js.

Naming Convention

export default {
  plugins: [
    '~/plugins/foo.client.js', // only in client side
    '~/plugins/bar.server.js', // only in server side
    '~/plugins/baz.js' // both client & server
  ]
}

Object Syntax

export default {
  plugins: [
    { src: '~/plugins/both-sides.js' },
    { src: '~/plugins/client-only.js', mode: 'client' }, // only on client side
    { src: '~/plugins/server-only.js', mode: 'server' } // only on server side
  ]
}

See here: https://nuxtjs.org/guides/directory-structure/plugins#client-or-server-side-only

Related