Je voudrais ajouter à mon application Nuxt des routes provenant d'un fichier json externe, qui peut changer au moment de l'exécution. Un sujet similaire peut être trouvé aquí .
J'ai remplacé le routeur Nuxt par défaut par ma propre implémentation. Si j'importe les routes de manière asynchrone en utilisant axios + router.addRoutes()
mais il semble que je perde le rendu côté serveur. Il semble que createRouter
aura un support asynchrone, mais ce n'est pas encore dans une version officielle de Nuxt.
Comment importer un fichier js/json ? de manière synchrone à mon router.js
ci-dessous, afin que je puisse alimenter les routes ? Je veux pouvoir configurer les routes au moment de l'exécution, donc je ne veux pas qu'elles fassent partie du bundle.
modules/router.js :
const path = require('path')
module.exports = function () {
this.nuxt.options.build.createRoutes = () => {}
this.addTemplate({
fileName: 'router.js',
src: path.resolve(`${this.options.srcDir}`, 'router.js')
})
}
nuxt.config.js :
modules: ['~/modules/router']
router.js :
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export function createRouter () {
const router = new Router({
mode: 'history',
routes: [/* ... */]
})
return router
}