diff --git a/packages/core/src/context.ts b/packages/core/src/context.ts index cc17d00..716913a 100644 --- a/packages/core/src/context.ts +++ b/packages/core/src/context.ts @@ -208,7 +208,11 @@ export class PageContext { ? mergePageMetaDataArray(generatedPageMetaData.concat(customPageMetaData)) : generatedPageMetaData - return type === 'main' ? this.setHomePage(result) : result + const parseMeta = result.filter((page, index, self) => + self.findLastIndex(item => page.path === item.path) === index, + ) + + return type === 'main' ? this.setHomePage(parseMeta) : parseMeta } /** @@ -241,6 +245,7 @@ export class PageContext { async mergePageMetaData() { const pageMetaData = await this.parsePages(this.pagesPath, 'main', this.pagesGlobConfig?.pages) + this.pageMetaData = pageMetaData debug.pages(this.pageMetaData) } diff --git a/packages/playground/src/pages-sub-pages/sub-main/pages/about/index.nvue b/packages/playground/src/pages-sub-pages/sub-main/pages/about/index.nvue new file mode 100644 index 0000000..cc7ec29 --- /dev/null +++ b/packages/playground/src/pages-sub-pages/sub-main/pages/about/index.nvue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/packages/playground/src/pages/index.nvue b/packages/playground/src/pages/index.nvue new file mode 100644 index 0000000..cc7ec29 --- /dev/null +++ b/packages/playground/src/pages/index.nvue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/test/files.spec.ts b/test/files.spec.ts index 0549498..6066be5 100644 --- a/test/files.spec.ts +++ b/test/files.spec.ts @@ -14,6 +14,7 @@ describe('get files', () => { "blog/index.vue", "blog/post.vue", "i18n.vue", + "index.nvue", "index.vue", "test-json.vue", "test-yaml.vue", diff --git a/test/generate.spec.ts b/test/generate.spec.ts index ebb6709..7fd103f 100644 --- a/test/generate.spec.ts +++ b/test/generate.spec.ts @@ -123,11 +123,11 @@ describe('generate routes', () => { { "path": "../packages/playground/src/pages/index", "type": "page", + "style": {}, "middlewares": [ "auth", "test" - ], - "style": {} + ] }, { "path": "../packages/playground/src/pages/test-json",