@uni-helper/vite-plugin-uni-pages 0.2.13 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +42 -41
- package/dist/index.d.cts +14 -2
- package/dist/index.d.mts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.mjs +42 -41
- package/package.json +10 -10
package/dist/index.cjs
CHANGED
|
@@ -36,12 +36,12 @@ function slash(str) {
|
|
|
36
36
|
|
|
37
37
|
function getDeclaration(ctx) {
|
|
38
38
|
const subPagesPath = ctx.subPageMetaData.map((sub) => {
|
|
39
|
-
return sub.pages.map((v) => `"
|
|
39
|
+
return sub.pages.map((v) => `"/${vite.normalizePath(path.join(sub.root, v.path))}"`);
|
|
40
40
|
}).flat();
|
|
41
41
|
const tabsPagesPath = ctx.pagesGlobConfig?.tabBar?.list?.map((v) => {
|
|
42
|
-
return `"
|
|
42
|
+
return `"/${v.pagePath}"`;
|
|
43
43
|
}) ?? [];
|
|
44
|
-
const allPagesPath = [...ctx.pageMetaData.filter((page) => !tabsPagesPath.includes(page.path)).map((v) => `"
|
|
44
|
+
const allPagesPath = [...ctx.pageMetaData.filter((page) => !tabsPagesPath.includes(page.path)).map((v) => `"/${v.path}"`), ...subPagesPath];
|
|
45
45
|
const code = `/* eslint-disable */
|
|
46
46
|
/* prettier-ignore */
|
|
47
47
|
// @ts-nocheck
|
|
@@ -92,10 +92,10 @@ async function parseSFC(code) {
|
|
|
92
92
|
}).descriptor || compilerSfc.parse({
|
|
93
93
|
source: code
|
|
94
94
|
});
|
|
95
|
-
} catch {
|
|
96
|
-
throw new Error(
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
} catch (error) {
|
|
96
|
+
throw new Error(`[vite-plugin-uni-pages] Vue3's "@vue/compiler-sfc" is required.
|
|
97
|
+
Original error:
|
|
98
|
+
${error}`);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
function parseCustomBlock(block, filePath, options) {
|
|
@@ -441,41 +441,44 @@ class PageContext {
|
|
|
441
441
|
Object.assign(pageMetaDatum, routeBlock.content);
|
|
442
442
|
return pageMetaDatum;
|
|
443
443
|
}
|
|
444
|
-
|
|
444
|
+
/**
|
|
445
|
+
* parse pages rules && set page type
|
|
446
|
+
* @param pages page path array
|
|
447
|
+
* @param type page type
|
|
448
|
+
* @param overrides custom page config
|
|
449
|
+
* @returns pages rules
|
|
450
|
+
*/
|
|
451
|
+
async parsePages(pages, type, overrides) {
|
|
445
452
|
const generatedPageMetaData = await Promise.all(pages.map(async (page) => await this.parsePage(page)));
|
|
446
453
|
const customPageMetaData = overrides || [];
|
|
447
454
|
const result = customPageMetaData.length ? mergePageMetaDataArray(generatedPageMetaData.concat(customPageMetaData)) : generatedPageMetaData;
|
|
448
|
-
this.setHomePage(result);
|
|
449
|
-
result.sort((page) => page.type === "home" ? -1 : 0);
|
|
450
|
-
return result;
|
|
455
|
+
return type === "main" ? this.setHomePage(result) : result;
|
|
451
456
|
}
|
|
457
|
+
/**
|
|
458
|
+
* set home page
|
|
459
|
+
* @param result pages rules array
|
|
460
|
+
* @returns pages rules
|
|
461
|
+
*/
|
|
452
462
|
setHomePage(result) {
|
|
453
|
-
const hasHome = result.some((
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
item.type = "home";
|
|
466
|
-
return true;
|
|
467
|
-
} else {
|
|
468
|
-
return false;
|
|
463
|
+
const hasHome = result.some(({ type }) => type === "home");
|
|
464
|
+
if (!hasHome) {
|
|
465
|
+
const isFoundHome = result.some((item) => {
|
|
466
|
+
const isFound = this.options.homePage.find((v) => v === item.path);
|
|
467
|
+
if (isFound)
|
|
468
|
+
item.type = "home";
|
|
469
|
+
return isFound;
|
|
470
|
+
});
|
|
471
|
+
if (!isFoundHome) {
|
|
472
|
+
this.logger?.warn('No home page found, check the configuration of pages.config.ts, or add the `homePage` option to UniPages in vite.config.js, or add `type="home"` to the routeBlock of your vue page.', {
|
|
473
|
+
timestamp: true
|
|
474
|
+
});
|
|
469
475
|
}
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
this.logger?.warn('No home page found, check the configuration of pages.config.ts, or add the `homePage` option to UniPages in vite.config.js, or add `type="home"` to the routeBlock of your vue page.', {
|
|
474
|
-
timestamp: true
|
|
475
|
-
});
|
|
476
|
+
}
|
|
477
|
+
result.sort((page) => page.type === "home" ? -1 : 0);
|
|
478
|
+
return result;
|
|
476
479
|
}
|
|
477
480
|
async mergePageMetaData() {
|
|
478
|
-
const pageMetaData = await this.parsePages(this.pagesPath, this.pagesGlobConfig?.pages);
|
|
481
|
+
const pageMetaData = await this.parsePages(this.pagesPath, "main", this.pagesGlobConfig?.pages);
|
|
479
482
|
this.pageMetaData = pageMetaData;
|
|
480
483
|
debug.pages(this.pageMetaData);
|
|
481
484
|
}
|
|
@@ -485,7 +488,7 @@ class PageContext {
|
|
|
485
488
|
for (const [dir, pages] of Object.entries(this.subPagesPath)) {
|
|
486
489
|
const root = path__default.basename(dir);
|
|
487
490
|
const globPackage = subPackages?.find((v) => v.root === root);
|
|
488
|
-
subPageMaps[root] = await this.parsePages(pages, globPackage?.pages);
|
|
491
|
+
subPageMaps[root] = await this.parsePages(pages, "sub", globPackage?.pages);
|
|
489
492
|
subPageMaps[root] = subPageMaps[root].map((page) => ({ ...page, path: slash(path__default.relative(root, page.path)) }));
|
|
490
493
|
}
|
|
491
494
|
for (const { root, pages } of subPackages) {
|
|
@@ -517,12 +520,10 @@ class PageContext {
|
|
|
517
520
|
await this.mergePageMetaData();
|
|
518
521
|
await this.mergeSubPageMetaData();
|
|
519
522
|
this.options.onAfterMergePageMetaData(this);
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
this.pageMetaData = [...pagesMap.values()];
|
|
525
|
-
}
|
|
523
|
+
const pagesMap = /* @__PURE__ */ new Map();
|
|
524
|
+
const pages = this.withUniPlatform ? this.pageMetaData.filter((v) => !/\..*$/.test(v.path) || v.path.includes(uniEnv.platform)).map((v) => ({ ...v, path: v.path.replace(/\..*$/, "") })) : this.pageMetaData;
|
|
525
|
+
pages.forEach((v) => pagesMap.set(v.path, v));
|
|
526
|
+
this.pageMetaData = [...pagesMap.values()];
|
|
526
527
|
this.options.onBeforeWriteFile(this);
|
|
527
528
|
const data = {
|
|
528
529
|
...this.pagesGlobConfig,
|
package/dist/index.d.cts
CHANGED
|
@@ -659,8 +659,20 @@ declare class PageContext {
|
|
|
659
659
|
setupWatcher(watcher: FSWatcher): Promise<void>;
|
|
660
660
|
onUpdate(): void;
|
|
661
661
|
parsePage(page: PagePath): Promise<PageMetaDatum>;
|
|
662
|
-
|
|
663
|
-
|
|
662
|
+
/**
|
|
663
|
+
* parse pages rules && set page type
|
|
664
|
+
* @param pages page path array
|
|
665
|
+
* @param type page type
|
|
666
|
+
* @param overrides custom page config
|
|
667
|
+
* @returns pages rules
|
|
668
|
+
*/
|
|
669
|
+
parsePages(pages: PagePath[], type: 'main' | 'sub', overrides?: PageMetaDatum[]): Promise<PageMetaDatum[]>;
|
|
670
|
+
/**
|
|
671
|
+
* set home page
|
|
672
|
+
* @param result pages rules array
|
|
673
|
+
* @returns pages rules
|
|
674
|
+
*/
|
|
675
|
+
setHomePage(result: PageMetaDatum[]): PageMetaDatum[];
|
|
664
676
|
mergePageMetaData(): Promise<void>;
|
|
665
677
|
mergeSubPageMetaData(): Promise<void>;
|
|
666
678
|
updatePagesJSON(filepath?: string): Promise<boolean>;
|
package/dist/index.d.mts
CHANGED
|
@@ -659,8 +659,20 @@ declare class PageContext {
|
|
|
659
659
|
setupWatcher(watcher: FSWatcher): Promise<void>;
|
|
660
660
|
onUpdate(): void;
|
|
661
661
|
parsePage(page: PagePath): Promise<PageMetaDatum>;
|
|
662
|
-
|
|
663
|
-
|
|
662
|
+
/**
|
|
663
|
+
* parse pages rules && set page type
|
|
664
|
+
* @param pages page path array
|
|
665
|
+
* @param type page type
|
|
666
|
+
* @param overrides custom page config
|
|
667
|
+
* @returns pages rules
|
|
668
|
+
*/
|
|
669
|
+
parsePages(pages: PagePath[], type: 'main' | 'sub', overrides?: PageMetaDatum[]): Promise<PageMetaDatum[]>;
|
|
670
|
+
/**
|
|
671
|
+
* set home page
|
|
672
|
+
* @param result pages rules array
|
|
673
|
+
* @returns pages rules
|
|
674
|
+
*/
|
|
675
|
+
setHomePage(result: PageMetaDatum[]): PageMetaDatum[];
|
|
664
676
|
mergePageMetaData(): Promise<void>;
|
|
665
677
|
mergeSubPageMetaData(): Promise<void>;
|
|
666
678
|
updatePagesJSON(filepath?: string): Promise<boolean>;
|
package/dist/index.d.ts
CHANGED
|
@@ -659,8 +659,20 @@ declare class PageContext {
|
|
|
659
659
|
setupWatcher(watcher: FSWatcher): Promise<void>;
|
|
660
660
|
onUpdate(): void;
|
|
661
661
|
parsePage(page: PagePath): Promise<PageMetaDatum>;
|
|
662
|
-
|
|
663
|
-
|
|
662
|
+
/**
|
|
663
|
+
* parse pages rules && set page type
|
|
664
|
+
* @param pages page path array
|
|
665
|
+
* @param type page type
|
|
666
|
+
* @param overrides custom page config
|
|
667
|
+
* @returns pages rules
|
|
668
|
+
*/
|
|
669
|
+
parsePages(pages: PagePath[], type: 'main' | 'sub', overrides?: PageMetaDatum[]): Promise<PageMetaDatum[]>;
|
|
670
|
+
/**
|
|
671
|
+
* set home page
|
|
672
|
+
* @param result pages rules array
|
|
673
|
+
* @returns pages rules
|
|
674
|
+
*/
|
|
675
|
+
setHomePage(result: PageMetaDatum[]): PageMetaDatum[];
|
|
664
676
|
mergePageMetaData(): Promise<void>;
|
|
665
677
|
mergeSubPageMetaData(): Promise<void>;
|
|
666
678
|
updatePagesJSON(filepath?: string): Promise<boolean>;
|
package/dist/index.mjs
CHANGED
|
@@ -21,12 +21,12 @@ function slash(str) {
|
|
|
21
21
|
|
|
22
22
|
function getDeclaration(ctx) {
|
|
23
23
|
const subPagesPath = ctx.subPageMetaData.map((sub) => {
|
|
24
|
-
return sub.pages.map((v) => `"
|
|
24
|
+
return sub.pages.map((v) => `"/${normalizePath(join(sub.root, v.path))}"`);
|
|
25
25
|
}).flat();
|
|
26
26
|
const tabsPagesPath = ctx.pagesGlobConfig?.tabBar?.list?.map((v) => {
|
|
27
|
-
return `"
|
|
27
|
+
return `"/${v.pagePath}"`;
|
|
28
28
|
}) ?? [];
|
|
29
|
-
const allPagesPath = [...ctx.pageMetaData.filter((page) => !tabsPagesPath.includes(page.path)).map((v) => `"
|
|
29
|
+
const allPagesPath = [...ctx.pageMetaData.filter((page) => !tabsPagesPath.includes(page.path)).map((v) => `"/${v.path}"`), ...subPagesPath];
|
|
30
30
|
const code = `/* eslint-disable */
|
|
31
31
|
/* prettier-ignore */
|
|
32
32
|
// @ts-nocheck
|
|
@@ -77,10 +77,10 @@ async function parseSFC(code) {
|
|
|
77
77
|
}).descriptor || parse({
|
|
78
78
|
source: code
|
|
79
79
|
});
|
|
80
|
-
} catch {
|
|
81
|
-
throw new Error(
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
} catch (error) {
|
|
81
|
+
throw new Error(`[vite-plugin-uni-pages] Vue3's "@vue/compiler-sfc" is required.
|
|
82
|
+
Original error:
|
|
83
|
+
${error}`);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
function parseCustomBlock(block, filePath, options) {
|
|
@@ -426,41 +426,44 @@ class PageContext {
|
|
|
426
426
|
Object.assign(pageMetaDatum, routeBlock.content);
|
|
427
427
|
return pageMetaDatum;
|
|
428
428
|
}
|
|
429
|
-
|
|
429
|
+
/**
|
|
430
|
+
* parse pages rules && set page type
|
|
431
|
+
* @param pages page path array
|
|
432
|
+
* @param type page type
|
|
433
|
+
* @param overrides custom page config
|
|
434
|
+
* @returns pages rules
|
|
435
|
+
*/
|
|
436
|
+
async parsePages(pages, type, overrides) {
|
|
430
437
|
const generatedPageMetaData = await Promise.all(pages.map(async (page) => await this.parsePage(page)));
|
|
431
438
|
const customPageMetaData = overrides || [];
|
|
432
439
|
const result = customPageMetaData.length ? mergePageMetaDataArray(generatedPageMetaData.concat(customPageMetaData)) : generatedPageMetaData;
|
|
433
|
-
this.setHomePage(result);
|
|
434
|
-
result.sort((page) => page.type === "home" ? -1 : 0);
|
|
435
|
-
return result;
|
|
440
|
+
return type === "main" ? this.setHomePage(result) : result;
|
|
436
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* set home page
|
|
444
|
+
* @param result pages rules array
|
|
445
|
+
* @returns pages rules
|
|
446
|
+
*/
|
|
437
447
|
setHomePage(result) {
|
|
438
|
-
const hasHome = result.some((
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
item.type = "home";
|
|
451
|
-
return true;
|
|
452
|
-
} else {
|
|
453
|
-
return false;
|
|
448
|
+
const hasHome = result.some(({ type }) => type === "home");
|
|
449
|
+
if (!hasHome) {
|
|
450
|
+
const isFoundHome = result.some((item) => {
|
|
451
|
+
const isFound = this.options.homePage.find((v) => v === item.path);
|
|
452
|
+
if (isFound)
|
|
453
|
+
item.type = "home";
|
|
454
|
+
return isFound;
|
|
455
|
+
});
|
|
456
|
+
if (!isFoundHome) {
|
|
457
|
+
this.logger?.warn('No home page found, check the configuration of pages.config.ts, or add the `homePage` option to UniPages in vite.config.js, or add `type="home"` to the routeBlock of your vue page.', {
|
|
458
|
+
timestamp: true
|
|
459
|
+
});
|
|
454
460
|
}
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
this.logger?.warn('No home page found, check the configuration of pages.config.ts, or add the `homePage` option to UniPages in vite.config.js, or add `type="home"` to the routeBlock of your vue page.', {
|
|
459
|
-
timestamp: true
|
|
460
|
-
});
|
|
461
|
+
}
|
|
462
|
+
result.sort((page) => page.type === "home" ? -1 : 0);
|
|
463
|
+
return result;
|
|
461
464
|
}
|
|
462
465
|
async mergePageMetaData() {
|
|
463
|
-
const pageMetaData = await this.parsePages(this.pagesPath, this.pagesGlobConfig?.pages);
|
|
466
|
+
const pageMetaData = await this.parsePages(this.pagesPath, "main", this.pagesGlobConfig?.pages);
|
|
464
467
|
this.pageMetaData = pageMetaData;
|
|
465
468
|
debug.pages(this.pageMetaData);
|
|
466
469
|
}
|
|
@@ -470,7 +473,7 @@ class PageContext {
|
|
|
470
473
|
for (const [dir, pages] of Object.entries(this.subPagesPath)) {
|
|
471
474
|
const root = path.basename(dir);
|
|
472
475
|
const globPackage = subPackages?.find((v) => v.root === root);
|
|
473
|
-
subPageMaps[root] = await this.parsePages(pages, globPackage?.pages);
|
|
476
|
+
subPageMaps[root] = await this.parsePages(pages, "sub", globPackage?.pages);
|
|
474
477
|
subPageMaps[root] = subPageMaps[root].map((page) => ({ ...page, path: slash(path.relative(root, page.path)) }));
|
|
475
478
|
}
|
|
476
479
|
for (const { root, pages } of subPackages) {
|
|
@@ -502,12 +505,10 @@ class PageContext {
|
|
|
502
505
|
await this.mergePageMetaData();
|
|
503
506
|
await this.mergeSubPageMetaData();
|
|
504
507
|
this.options.onAfterMergePageMetaData(this);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
this.pageMetaData = [...pagesMap.values()];
|
|
510
|
-
}
|
|
508
|
+
const pagesMap = /* @__PURE__ */ new Map();
|
|
509
|
+
const pages = this.withUniPlatform ? this.pageMetaData.filter((v) => !/\..*$/.test(v.path) || v.path.includes(platform)).map((v) => ({ ...v, path: v.path.replace(/\..*$/, "") })) : this.pageMetaData;
|
|
510
|
+
pages.forEach((v) => pagesMap.set(v.path, v));
|
|
511
|
+
this.pageMetaData = [...pagesMap.values()];
|
|
511
512
|
this.options.onBeforeWriteFile(this);
|
|
512
513
|
const data = {
|
|
513
514
|
...this.pagesGlobConfig,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uni-helper/vite-plugin-uni-pages",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.15",
|
|
5
5
|
"description": "File system based routing for uni-app applications using Vite",
|
|
6
6
|
"author": "KeJun",
|
|
7
7
|
"license": "MIT",
|
|
@@ -36,21 +36,21 @@
|
|
|
36
36
|
"dist"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@uni-helper/uni-env": "^0.
|
|
40
|
-
"@vue/compiler-sfc": "^3.
|
|
41
|
-
"chokidar": "^3.
|
|
39
|
+
"@uni-helper/uni-env": "^0.1.1",
|
|
40
|
+
"@vue/compiler-sfc": "^3.4.21",
|
|
41
|
+
"chokidar": "^3.6.0",
|
|
42
42
|
"debug": "^4.3.4",
|
|
43
|
-
"fast-glob": "^3.3.
|
|
43
|
+
"fast-glob": "^3.3.2",
|
|
44
44
|
"json5": "^2.2.3",
|
|
45
45
|
"lodash-unified": "^1.0.3",
|
|
46
|
-
"magic-string": "^0.30.
|
|
46
|
+
"magic-string": "^0.30.8",
|
|
47
47
|
"unconfig": "^0.3.11",
|
|
48
|
-
"yaml": "^2.
|
|
48
|
+
"yaml": "^2.4.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@antfu/utils": "^0.7.
|
|
52
|
-
"@types/debug": "^4.1.
|
|
53
|
-
"@types/node": "^20.
|
|
51
|
+
"@antfu/utils": "^0.7.7",
|
|
52
|
+
"@types/debug": "^4.1.12",
|
|
53
|
+
"@types/node": "^20.11.24"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "unbuild",
|