Привет всем товарищам кодировщикам
В настоящее время я работаю над приложением nuxt в интернет-магазине. Наша установка в Nuxt - это машинописная сборка с Nuxt build (target stati c) && nuxt export.
Это означает, что нам нужно создать все маршруты при сборке.
Прямо сейчас у нас есть около 2500 путей, и мы хотим создать собственный роутер. Это связано с тем, что все маршруты были получены на основе двух вызовов API, один из нашей cms, а другой из нашего PIM.
Вызовы API предоставляют все URL-адреса страниц содержимого и все URL-адреса продуктов.
Он отлично работает локально, и все страницы отображаются правильно с правильным компонентом. Проблема заключается в том, когда мы строим.
Мы создаем наш маршрутизатор в маршрутизаторе. js, который запускает
return new Router({
mode: 'history',
routes: newArr, // <- routes created from api calls / data
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return { x: 0, y: 0 }
}
}
})
Это работает так, как должно. Затем мы используем специальный модуль, чтобы остановить нормальное создание маршрута в nuxt, ссылка это: Источник: примеры среднего маршрутизатора
const path = require("path")
module.exports = function() {
// tslint:disable: no-any
(this as any).nuxt.options.build.createRoutes = () => {}
(this as any).addTemplate({
fileName: "router.js",
src: path.resolve(`${(this as any).options.srcDir}`, "router.js"),
});
};
Проблема в том, что когда мы строим, nuxt запускает наш маршрутизатор создания для каждой сборки страницы ... а это означает, что он вызывает оба api более 2500 раз. Это ПЛОХО ...
Можно ли как-то собрать роутер один раз, а затем использовать его для всех страниц? Или у кого-нибудь из вас, ребята, другой подход