J'ai une application nuxt, dans laquelle j'ai beaucoup de messages. J'ai récemment refactorisé le projet et je ne veux pas generate
tous les messages, car cela prend trop de temps.
Au lieu de cela, j'ai une page où je récupère le contenu de l'article correspondant par le biais d'une requête url : www.mypage.com/posts/?post=my-post-slug
Parce que le contenu se trouve dans des fichiers json statiques, par exemple dans :
/static/data/posts/my-post-slug.json
/static/data/posts/my-post-slug_2.json
/static/data/posts/my-post-slug_3.json
/static/data/posts/my-post-slug_n.json
J'ai lu le post https://github.com/nuxt/nuxt.js/issues/123 sur la façon de charger du json de la meilleure façon possible.
J'ai décidé de faire quelque chose de ce genre dans le récupérer() crochet :
// ... simplified code
async fetch() {
let postSlug = this.$route.query.post
const post = this.$axios
.get(`/posts/posts.de.${postSlug}.json`)
.then((data) => {
return data?.data
})
.catch((error) => {
console.error('error: ', error)
const code = parseInt(error.response && error.response.status)
if (code === 404) {
this.$nuxt.error({ statusCode: 404, message: 'Post not found' })
}
})
this.activePost = post?.items?.[0] || false
}
Comme je l'ai déjà dit, je ne génère pas les articles proprement dits, mais je génère toutes les urls des articles dans mon sitemap.xml.
Lors de l'exécution du programme generate in analyser J'ai maintenant une taille de paquet énorme (app.js), et je n'arrive pas à comprendre pourquoi... -> Voir l'image ci-jointe. (Note : app.js
a une taille ridicule de 34MB !!!!)
- Je ne comprends pas pourquoi tous mes post jsons apparaissent dans la partie statique et dans la partie dist du bundle ???
- Je ne comprends pas du tout pourquoi ils y figurent. Je veux qu'elles se trouvent dans le dossier statique, mais qu'elles ne soient pas incluses dans le bundle de l'application. (vous pouvez voir qu'il y a des fichiers comme
events.bundle.de.json
inclus. J'en ai besoin pour récupérer une liste de tous les messages, par exemple. Je le fais également dans mon fetch hook uniquement.
Je serais très heureux si quelqu'un pouvait m'expliquer pourquoi ces fichiers sont inclus (deux fois) !