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)/
})
}
}
}
}
According to NuxtJS documentation: https://nuxtjs.org/guide/plugins
I can confirm this works, but some plugins still throw error on the first 3 refreshes of the page, then the error is gone, I don't know the reason.
Client-side only
Some plugins might work only for the browser, you can use the ssr: false option in plugins to run the file only on the client-side.
Example:
nuxt.config.js:
module.exports = { plugins: [ { src: '~/plugins/vue-notifications', ssr: false } ] }
plugins/vue-notifications.js:
import Vue from 'vue' import VueNotifications from 'vue-notifications' Vue.use(VueNotifications)
In case you need to require some libraries only for the server, you can use the process.server variable set to true when webpack is creating the server.bundle.js file.