From 546499ba47a73c22e94c6237e8268fbce7459b6d Mon Sep 17 00:00:00 2001 From: ULIVZ Date: Mon, 14 Aug 2023 16:05:12 +0800 Subject: [PATCH] fix(core): failed to resolve theme components when using theme inheritance (close: #3163) (#3164) --- packages/@vuepress/core/lib/node/theme-api/index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/@vuepress/core/lib/node/theme-api/index.js b/packages/@vuepress/core/lib/node/theme-api/index.js index f3fa586650..aebb0ed676 100644 --- a/packages/@vuepress/core/lib/node/theme-api/index.js +++ b/packages/@vuepress/core/lib/node/theme-api/index.js @@ -1,9 +1,9 @@ const { logger, fs, + globby, path: { resolve } } = require('@vuepress/shared-utils') -const readdirSync = dir => (fs.existsSync(dir) && fs.readdirSync(dir)) || [] module.exports = class ThemeAPI { constructor (theme, parentTheme) { @@ -105,10 +105,12 @@ module.exports = class ThemeAPI { function resolveSFCs (dirs) { return dirs - .map(layoutDir => - readdirSync(layoutDir) - .filter(filename => filename.endsWith('.vue')) - .map(filename => { + .map((layoutDir) => + (fs.existsSync(layoutDir) + ? globby.sync('**/*.vue', { cwd: layoutDir, absolute: false }) + : [] + ) + .map((filename) => { const componentName = getComponentName(filename) return { filename,