From 32b9147bf3d0bbb5e7f17145428628ee3df2e01d Mon Sep 17 00:00:00 2001 From: Razvan Stoenescu Date: Mon, 15 Aug 2022 17:51:26 +0300 Subject: [PATCH] fix(app-vite): preFetch may error out with newer vue-router #14172 --- app-vite/templates/entry/client-prefetch.js | 6 +++++- app-vite/templates/entry/server-entry.js | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app-vite/templates/entry/client-prefetch.js b/app-vite/templates/entry/client-prefetch.js index 509eb95ae05..06daa514196 100644 --- a/app-vite/templates/entry/client-prefetch.js +++ b/app-vite/templates/entry/client-prefetch.js @@ -33,7 +33,11 @@ function getMatchedComponents (to, router) { if (!route) { return [] } - return Array.prototype.concat.apply([], route.matched.map(m => { + const matched = route.matched.filter(m => m.components !== void 0) + + if (matched.length === 0) { return [] } + + return Array.prototype.concat.apply([], matched.map(m => { return Object.keys(m.components).map(key => { const comp = m.components[key] return { diff --git a/app-vite/templates/entry/server-entry.js b/app-vite/templates/entry/server-entry.js index f47e9b20670..67bb5faaf08 100644 --- a/app-vite/templates/entry/server-entry.js +++ b/app-vite/templates/entry/server-entry.js @@ -138,6 +138,7 @@ export default ssrContext => { // wait until router has resolved possible async hooks router.isReady().then(() => { let matchedComponents = router.currentRoute.value.matched + .filter(record => record.components !== void 0) .flatMap(record => Object.values(record.components)) // no matched routes