Skip to content

Commit de38e00

Browse files
authored
feat: filter pages in mergePageMetaData to exclude sub-package pages #258 (#259)
* feat: filter pages in mergePageMetaData to exclude sub-package pages * fix: enhance mergePageMetaData to handle sub-package pages and update tests * fix: optimize subPageAbsolutePaths collection in mergePageMetaData * chore: remove commented console log in generate.spec.ts
1 parent 88d4619 commit de38e00

File tree

6 files changed

+21
-4
lines changed

6 files changed

+21
-4
lines changed

packages/core/src/context.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,13 @@ export class PageContext {
250250
}
251251

252252
async mergePageMetaData() {
253+
// 收集所有子包中的页面绝对路径
254+
const subPageAbsolutePaths = Array.from(this.subPages.values()).flatMap(v => Array.from(v.keys()))
255+
256+
// 过滤掉属于子包的页面
257+
for (const subPageAbsolutePath of subPageAbsolutePaths)
258+
this.pages.delete(subPageAbsolutePath)
259+
253260
const pageMetaData = await this.parsePages(this.pages, 'main', this.pagesGlobConfig?.pages)
254261

255262
this.pageMetaData = pageMetaData
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<template>
2+
<div>
3+
this is pages-internal-sub
4+
</div>
5+
</template>

packages/playground/src/uni-pages.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ type _LocationUrl =
2323
"/pages/define-page/yaml" |
2424
"/pages-sub/index" |
2525
"/pages-sub/about/index" |
26-
"/pages-sub/about/your";
26+
"/pages-sub/about/your" |
27+
"/pages/pages-internal-sub/index";
2728

2829
interface NavigateToOptions {
2930
url: _LocationUrl;

packages/playground/vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export default defineConfig({
1616
dts: 'src/uni-pages.d.ts',
1717
homePage: 'pages/index',
1818
debug: true,
19-
subPackages: ['src/pages-sub', 'src/pages-sub2'],
19+
subPackages: ['src/pages-sub', 'src/pages-sub2', 'src/pages/pages-internal-sub'],
2020
// configSource: [
2121
// {
2222
// files: 'vite.config',

test/files.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ describe('get files', () => {
2424
"i18n.vue",
2525
"index.nvue",
2626
"index.vue",
27+
"pages-internal-sub/index.vue",
2728
"test-json.vue",
2829
"test-jsonc-with-comment.vue",
2930
"test-yaml.vue",

test/generate.spec.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ const pagesGlobConfig: UserPagesConfig = {
2323

2424
describe('generate routes', () => {
2525
it('vue - pages snapshot', async () => {
26-
const ctx = new PageContext({ dir: 'packages/playground/src/pages', homePage: 'pages/index' })
26+
const ctx = new PageContext({ dir: 'packages/playground/src/pages', homePage: 'pages/index', subPackages: ['packages/playground/src/pages/pages-internal-sub'] })
2727
await ctx.scanPages()
28+
await ctx.scanSubPages()
2829
await ctx.mergePageMetaData()
30+
2931
const routes = ctx.resolveRoutes()
3032

3133
expect(routes).toMatchInlineSnapshot(`
@@ -173,9 +175,10 @@ describe('generate routes', () => {
173175
})
174176

175177
it('vue - not merge pages snapshot', async () => {
176-
const ctx = new PageContext({ dir: 'packages/playground/src/pages', mergePages: false })
178+
const ctx = new PageContext({ dir: 'packages/playground/src/pages', mergePages: false, subPackages: ['packages/playground/src/pages/pages-internal-sub'] })
177179
await ctx.scanPages()
178180
ctx.pagesGlobConfig = pagesGlobConfig
181+
await ctx.scanSubPages()
179182
await ctx.mergePageMetaData()
180183
const routes = ctx.resolveRoutes()
181184

0 commit comments

Comments
 (0)