How to remove window.__NUXT__ without any issue from Vuex in Nuxt
Asked Answered
L

0

10

I'm on Nuxt 2.13 and I'm having an issue with window.__Nuxt__(function(a,b,c,d,.....)). I don't know if it will affect my SEO or not, but it's on my nerve and shows all my language file.

here is the situation : there is a lang.json file in my app. i read it and store it in a lang state in Vuex. but window.__Nuxt__ shows my lang which i don't want to!!

i have found three solutions so far to remove it:

1: by adding this code to nuxt.config.js link to stack answer

hooks: {
    'vue-renderer:ssr:context'(context) {
      const routePath = JSON.stringify(context.nuxt.routePath);
      context.nuxt = {serverRendered: true, routePath};
    }
  }
}

2: by commenting some codes in node_module/@nuxt/vue-renderer/dist/vue-renderer.js link to article

3: by using cheerio package and scraping the script from body link to article

const cherrio = const cheerio = require('cheerio');
export default {
//The rest configuration is omitted
hooks: {
    'render:route': (url, result) => {
      this.$ = cheerio.load(result.html,{decodeEntities: false});
      //Since window.__nuxt__ is always located in the first script in the body,
      //So I removed the first script tag in the body
      this.$(`body script`).eq(0).remove();
      result.html = this.$.html()
    }
  }
}

all three will do the job, BUT !! my components won't be lazy loaded anymore as i use an state in Vuex to give theme address for lazy load! for example:

computed:{
  mycomponent(){
    return ()=>import(`~/components/${this.$store.state.siteDirection}/mycomp.vue`)
  }
}

it will give error that webpack cant lazy load this as this.$store.state.siteDirection is null.

how can i solve this??

Luzluzader answered 21/1, 2021 at 9:39 Comment(2)
By any chance, did you find a solution?Interchangeable
@MostafaSaid , unfortunately no. apparently that's how state management works. I just changed my lang structure by using i18n.Luzluzader

© 2022 - 2024 — McMap. All rights reserved.