diff --git a/.changeset/silver-adults-laugh.md b/.changeset/silver-adults-laugh.md new file mode 100644 index 000000000..b1b58b5e6 --- /dev/null +++ b/.changeset/silver-adults-laugh.md @@ -0,0 +1,5 @@ +--- +'@ice/plugin-miniapp': patch +--- + +fix: miniapp using absolute path to match route manifest diff --git a/packages/plugin-miniapp/src/miniapp/webpack/plugins/MiniPlugin.ts b/packages/plugin-miniapp/src/miniapp/webpack/plugins/MiniPlugin.ts index c8638d62d..20c6e2c54 100644 --- a/packages/plugin-miniapp/src/miniapp/webpack/plugins/MiniPlugin.ts +++ b/packages/plugin-miniapp/src/miniapp/webpack/plugins/MiniPlugin.ts @@ -10,6 +10,7 @@ import loaderUtils from '@ice/bundles/compiled/loader-utils/index.js'; import type { Compilation, Compiler } from '@ice/bundles/compiled/webpack/index.js'; import EntryDependency from '@ice/bundles/compiled/webpack/EntryDependency.js'; +import type { NestedRouteManifest } from '@ice/route-manifest'; import SingleEntryDependency from '../dependencies/SingleEntryDependency.js'; import { componentConfig } from '../utils/component.js'; @@ -93,7 +94,7 @@ export default class MiniPlugin { appConfig: MiniappAppConfig; /** app、页面、组件的配置集合 */ filesConfig: IMiniFilesConfig = {}; - routeManifest: Record[] = []; + routeManifest: NestedRouteManifest[] = []; isWatch = false; /** 页面列表 */ pages = new Set(); @@ -162,7 +163,7 @@ export default class MiniPlugin { this.context = compiler.context; this.appEntry = this.getAppEntry(compiler); - const { commonChunks, combination, framework, isBuildPlugin, newBlended } = this.options; + const { commonChunks, combination, framework, isBuildPlugin, newBlended, sourceDir } = this.options; const { addChunkPages, onCompilerMake, modifyBuildAssets, onParseCreateElement } = combination.config; @@ -281,7 +282,7 @@ export default class MiniPlugin { : this.pageLoaderName; if (!isLoaderExist(module.loaders, loaderName)) { - const routeInfo = this.routeManifest.find(route => path.join('pages', route.id) === module.name); + const routeInfo = this.routeManifest.find(route => path.join(sourceDir, 'pages', route.path) === module.resource); const hasExportData = routeInfo?.exports?.includes('dataLoader'); const hasExportConfig = routeInfo?.exports?.includes('pageConfig'); module.loaders.unshift({