weapp-vite 6.15.17 → 6.15.18

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.
@@ -1,4 +1,4 @@
1
- import { d as getRouteRuntimeGlobalKeys, i as getCompilerContext } from "./createContext-CaCrpsG-.mjs";
1
+ import { d as getRouteRuntimeGlobalKeys, i as getCompilerContext } from "./createContext-Cwf_Dx0p.mjs";
2
2
  //#region src/auto-routes.ts
3
3
  const ROUTE_RUNTIME_OVERRIDE_KEY = Symbol.for("weapp-vite.route-runtime");
4
4
  function createGetter(resolver) {
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { C as isPathInside, S as shouldPassPlatformArgToIdeOpen, _ as createCjsConfigLoadError, b as normalizeMiniPlatform, c as createSharedBuildConfig, f as resolveWeappConfigFile, g as parseCommentJson, h as loadViteConfigFile, l as SHARED_CHUNK_VIRTUAL_PREFIX, m as getProjectConfigFileName, n as syncProjectSupportFiles, p as checkRuntime, r as syncManagedTsconfigBootstrapFiles, s as formatBytes, t as createCompilerContext, u as resolveHmrProfileJsonPath, v as DEFAULT_MP_PLATFORM, x as resolveMiniPlatform, y as getDefaultIdeProjectRoot } from "./createContext-CaCrpsG-.mjs";
1
+ import { C as isPathInside, S as shouldPassPlatformArgToIdeOpen, _ as createCjsConfigLoadError, b as normalizeMiniPlatform, c as createSharedBuildConfig, f as resolveWeappConfigFile, g as parseCommentJson, h as loadViteConfigFile, l as SHARED_CHUNK_VIRTUAL_PREFIX, m as getProjectConfigFileName, n as syncProjectSupportFiles, p as checkRuntime, r as syncManagedTsconfigBootstrapFiles, s as formatBytes, t as createCompilerContext, u as resolveHmrProfileJsonPath, v as DEFAULT_MP_PLATFORM, x as resolveMiniPlatform, y as getDefaultIdeProjectRoot } from "./createContext-Cwf_Dx0p.mjs";
2
2
  import { r as logger_default, t as colors } from "./logger-CgxdNjvb.mjs";
3
- import { h as VERSION } from "./file-DUPlM0cH.mjs";
3
+ import { h as VERSION } from "./file-C0a3v0yb.mjs";
4
4
  import { a as resolveWeappMcpConfig, o as startWeappViteMcpServer } from "./mcp-DRlj32v4.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import path, { posix } from "pathe";
@@ -2784,7 +2784,7 @@ function resolveRunnableHotkeyDefinition(input) {
2784
2784
  }
2785
2785
  //#endregion
2786
2786
  //#region package.json
2787
- var version = "6.15.17";
2787
+ var version = "6.15.18";
2788
2788
  //#endregion
2789
2789
  //#region src/cli/devHotkeys/format.ts
2790
2790
  const FULLWIDTH_ASCII_START = 65281;
@@ -778,7 +778,9 @@ interface BuildService {
778
778
  invalidateIndependentOutput: (root: string) => void;
779
779
  }
780
780
  //#endregion
781
- //#region ../../node_modules/.pnpm/pkg-types@2.3.0/node_modules/pkg-types/dist/index.d.mts
781
+ //#region ../../node_modules/.pnpm/pkg-types@2.3.1/node_modules/pkg-types/dist/index.d.mts
782
+ //#endregion
783
+ //#region src/packagejson/types.d.ts
782
784
  interface PackageJson {
783
785
  /**
784
786
  * The name is what your thing is called.
@@ -1072,7 +1074,8 @@ type PackageJsonFunding = string | {
1072
1074
  };
1073
1075
  type PackageJsonExportKey = "." | "import" | "require" | "types" | "node" | "browser" | "default" | (string & {});
1074
1076
  type PackageJsonExportsObject = { [P in PackageJsonExportKey]?: string | PackageJsonExportsObject | Array<string | PackageJsonExportsObject> };
1075
- type PackageJsonExports = string | PackageJsonExportsObject | Array<string | PackageJsonExportsObject>;
1077
+ type PackageJsonExports = string | PackageJsonExportsObject | Array<string | PackageJsonExportsObject>; //#endregion
1078
+ //#region src/packagejson/utils.d.ts
1076
1079
  /**
1077
1080
  * Defines a PackageJson structure.
1078
1081
  * @param pkg - The `package.json` content as an object. See {@link PackageJson}.
@@ -1380,11 +1383,14 @@ interface RuntimeState {
1380
1383
  hmr: {
1381
1384
  loadedEntrySet: Set<string>;
1382
1385
  dirtyEntrySet: Set<string>;
1383
- dirtyEntryReasons: Map<string, 'direct' | 'dependency'>;
1386
+ dirtyEntryReasons: Map<string, 'direct' | 'dependency' | 'metadata'>;
1384
1387
  resolvedEntryMap: Map<string, ResolvedId>;
1385
1388
  entriesMap: Map<string, Entry | undefined>;
1386
1389
  layoutEntryDependents: Map<string, Set<string>>;
1387
1390
  entryLayoutDependencies: Map<string, Set<string>>;
1391
+ vueEntryNonJsonSignatures: Map<string, string>;
1392
+ didEmitAllEntries: boolean;
1393
+ lastEmittedEntryIds: Set<string>;
1388
1394
  recentProfiles: Array<{
1389
1395
  totalMs: number;
1390
1396
  buildCoreMs?: number;
package/dist/config.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { Bn as resolveWeappViteHostMeta, Fn as WeappViteHostMeta, In as WeappViteRuntime, Ln as applyWeappViteHostMeta, Pn as WEAPP_VITE_HOST_NAME, Rn as createWeappViteHostMeta, _ as definePageJson, a as UserConfigFnNoEnvPlain, c as UserConfigFnPromise, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, i as UserConfigFnNoEnv, l as defineConfig, m as Theme, n as UserConfigExport, nt as WeappViteConfig, o as UserConfigFnObject, p as Sitemap, r as UserConfigFn, s as UserConfigFnObjectPlain, t as UserConfig, u as App, v as defineSitemapJson, y as defineThemeJson, zn as isWeappViteHost } from "./config-BEJTp6sp.mjs";
1
+ import { Bn as resolveWeappViteHostMeta, Fn as WeappViteHostMeta, In as WeappViteRuntime, Ln as applyWeappViteHostMeta, Pn as WEAPP_VITE_HOST_NAME, Rn as createWeappViteHostMeta, _ as definePageJson, a as UserConfigFnNoEnvPlain, c as UserConfigFnPromise, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, i as UserConfigFnNoEnv, l as defineConfig, m as Theme, n as UserConfigExport, nt as WeappViteConfig, o as UserConfigFnObject, p as Sitemap, r as UserConfigFn, s as UserConfigFnObjectPlain, t as UserConfig, u as App, v as defineSitemapJson, y as defineThemeJson, zn as isWeappViteHost } from "./config-CIof1TIl.mjs";
2
2
  export { App, Component, Page, Sitemap, Theme, UserConfig, UserConfigExport, UserConfigFn, UserConfigFnNoEnv, UserConfigFnNoEnvPlain, UserConfigFnObject, UserConfigFnObjectPlain, UserConfigFnPromise, WEAPP_VITE_HOST_NAME, WeappViteConfig, WeappViteHostMeta, WeappViteRuntime, applyWeappViteHostMeta, createWeappViteHostMeta, defineAppJson, defineComponentJson, defineConfig, definePageJson, defineSitemapJson, defineThemeJson, isWeappViteHost, resolveWeappViteHostMeta };
@@ -1,6 +1,6 @@
1
1
  import { n as applyWeappViteHostMeta } from "./pluginHost-SJdl15d3.mjs";
2
2
  import { n as configureLogger, r as logger_default } from "./logger-CgxdNjvb.mjs";
3
- import { _ as jsExtensions, a as findJsonEntry, b as vueExtensions, c as isJsOrTs, d as touch, g as configExtensions, i as findJsEntry, l as isTemplate, n as changeFileExtension, o as findTemplateEntry, p as inlineAutoRoutesImports, r as findCssEntry, s as findVueEntry, t as extractConfigFromVue, v as supportedCssLangs, y as templateExtensions } from "./file-DUPlM0cH.mjs";
3
+ import { _ as jsExtensions, a as findJsonEntry, b as vueExtensions, c as isJsOrTs, d as touch, g as configExtensions, i as findJsEntry, l as isTemplate, n as changeFileExtension, o as findTemplateEntry, p as inlineAutoRoutesImports, r as findCssEntry, s as findVueEntry, t as extractConfigFromVue, v as supportedCssLangs, y as templateExtensions } from "./file-C0a3v0yb.mjs";
4
4
  import { createRequire, isBuiltin } from "node:module";
5
5
  import path, { posix } from "pathe";
6
6
  import path$1, { normalize, relative, win32 } from "node:path";
@@ -14,7 +14,7 @@ import fs$1, { existsSync, readFileSync } from "node:fs";
14
14
  import { parse } from "vue/compiler-sfc";
15
15
  import { BABEL_TS_MODULE_PARSER_OPTIONS, generate, getVisitorKeys, parse as parse$2, parseJsLike, traverse } from "@weapp-vite/ast/babel";
16
16
  import pm from "picomatch";
17
- import { VUE_COMPONENT_TAG_RE, WE_VU_MODULE_ID, WE_VU_RUNTIME_APIS, buildClassStyleComputedCode, collectVueTemplateTags, compileJsxFile, compileVueFile, createJsonMerger, createPageEntryMatcher, createPageEntryMatcher as createPageEntryMatcher$1, getClassStyleWxsSource, getMiniProgramTemplatePlatform, getSfcCheckMtime, injectWevuPageFeaturesInJsWithResolver, invalidateFileCache, isAutoImportCandidateTag, isBuiltinComponent, pathExists, readAndParseSfc, readFile as readFile$1, resolveClassStyleWxsLocation } from "wevu/compiler";
17
+ import { VUE_COMPONENT_TAG_RE, WE_VU_MODULE_ID, WE_VU_RUNTIME_APIS, buildClassStyleComputedCode, collectVueTemplateTags, compileJsxFile, compileVueFile, createJsonMerger, createPageEntryMatcher, createPageEntryMatcher as createPageEntryMatcher$1, getClassStyleWxsSource, getMiniProgramTemplatePlatform, getSfcCheckMtime, injectWevuPageFeaturesInJsWithResolver, invalidateFileCache, isAutoImportCandidateTag, isBuiltinComponent, pathExists, readAndParseSfc, readFile as readFile$1, resolveClassStyleWxsLocation, stripJsonMacroCallsFromCode } from "wevu/compiler";
18
18
  import process from "node:process";
19
19
  import { parse as parse$1, stringify } from "comment-json";
20
20
  import fs$2, { appendFile, copyFile, mkdir, readFile, readdir, rm } from "node:fs/promises";
@@ -4691,10 +4691,12 @@ async function resolveEntryPath(input, options) {
4691
4691
  //#endregion
4692
4692
  //#region src/utils/json.ts
4693
4693
  const ALIPAY_GENERIC_COMPONENT_PLACEHOLDER = "./__weapp_vite_generic_component";
4694
+ const WEAPP_SCOPED_SLOT_GENERIC_COMPONENT_PLACEHOLDER = "./__weapp_vite_scoped_slot_generic_component";
4694
4695
  const JSON_FILE_JS_EXTENSION_RE = /\.[jt]s$/;
4695
4696
  const COMPONENT_NAME_LOWER_TO_UPPER_RE = /([a-z0-9])([A-Z])/g;
4696
4697
  const COMPONENT_NAME_MULTI_UPPER_RE = /([A-Z]+)([A-Z][a-z])/g;
4697
4698
  const COMPONENT_NAME_HAS_UPPER_RE = /[A-Z]/;
4699
+ const SCOPED_SLOT_GENERIC_KEY_RE$1 = /^scoped-slots-/;
4698
4700
  function parseCommentJson(json) {
4699
4701
  return parse$1(json, void 0, true);
4700
4702
  }
@@ -4757,16 +4759,21 @@ function normalizeUsingComponentsByPlatform(usingComponents, platform, options)
4757
4759
  return normalized;
4758
4760
  }
4759
4761
  function normalizeComponentGenericsByPlatform(componentGenerics, platform) {
4760
- if (!shouldFillComponentGenericsDefault(platform)) return componentGenerics;
4762
+ if (!shouldFillComponentGenericsDefault(platform) && platform !== "weapp") return componentGenerics;
4761
4763
  const normalized = {};
4762
4764
  for (const [key, value] of Object.entries(componentGenerics)) {
4765
+ const placeholder = platform === "weapp" ? SCOPED_SLOT_GENERIC_KEY_RE$1.test(key) ? WEAPP_SCOPED_SLOT_GENERIC_COMPONENT_PLACEHOLDER : void 0 : ALIPAY_GENERIC_COMPONENT_PLACEHOLDER;
4766
+ if (!placeholder) {
4767
+ normalized[key] = value;
4768
+ continue;
4769
+ }
4763
4770
  if (value === true) {
4764
- normalized[key] = { default: ALIPAY_GENERIC_COMPONENT_PLACEHOLDER };
4771
+ normalized[key] = { default: placeholder };
4765
4772
  continue;
4766
4773
  }
4767
4774
  if (isObject(value)) {
4768
4775
  const nextValue = { ...value };
4769
- if (typeof nextValue.default !== "string" || !nextValue.default.trim()) nextValue.default = ALIPAY_GENERIC_COMPONENT_PLACEHOLDER;
4776
+ if (typeof nextValue.default !== "string" || !nextValue.default.trim()) nextValue.default = placeholder;
4770
4777
  normalized[key] = nextValue;
4771
4778
  continue;
4772
4779
  }
@@ -11935,6 +11942,18 @@ function stripQueryAndHash(value) {
11935
11942
  const endIndex = [value.indexOf("?"), value.indexOf("#")].filter((index) => index >= 0).reduce((min, index) => Math.min(min, index), Number.POSITIVE_INFINITY);
11936
11943
  return Number.isFinite(endIndex) ? value.slice(0, endIndex) : value;
11937
11944
  }
11945
+ function createPathMatcher(patterns, options) {
11946
+ if (!patterns.length) return () => false;
11947
+ return pm(patterns.map((pattern) => normalizePath$1(pattern)), options);
11948
+ }
11949
+ function createAssetPathVariants(file, roots) {
11950
+ const variants = [file];
11951
+ for (const root of roots) {
11952
+ const relative = path.relative(root, file);
11953
+ if (relative && !relative.startsWith("..") && !path.isAbsolute(relative)) variants.push(relative);
11954
+ }
11955
+ return variants.map((variant) => normalizePath$1(variant));
11956
+ }
11938
11957
  function collectBundledAssetSourcePaths(bundle) {
11939
11958
  const sources = /* @__PURE__ */ new Set();
11940
11959
  for (const output of Object.values(bundle)) {
@@ -11961,7 +11980,8 @@ function scanAssetFiles(configService, config, buildTarget) {
11961
11980
  path.resolve(configService.cwd, `${config.build.outDir}/**/*`),
11962
11981
  ...exclude
11963
11982
  ];
11964
- const patterns = [`**/*.{${defaultAssetExtensions.join(",")}}`, ...include];
11983
+ const includeMatcher = createPathMatcher([`**/*.{${defaultAssetExtensions.join(",")}}`, ...include], { dot: false });
11984
+ const ignoreMatcher = createPathMatcher(ignore, { dot: true });
11965
11985
  const roots = /* @__PURE__ */ new Set();
11966
11986
  if (buildTarget !== "plugin") roots.add(configService.absoluteSrcRoot);
11967
11987
  if (configService.absolutePluginRoot && buildTarget === "plugin") roots.add(configService.absolutePluginRoot);
@@ -11970,10 +11990,16 @@ function scanAssetFiles(configService, config, buildTarget) {
11970
11990
  return new fdir({
11971
11991
  includeDirs: false,
11972
11992
  pathSeparator: "/"
11973
- }).withFullPaths().globWithOptions(patterns, {
11974
- ignore,
11975
- dot: false
11976
- }).crawl(root).withPromise();
11993
+ }).withFullPaths().crawl(root).withPromise().then((files) => {
11994
+ return files.filter((file) => {
11995
+ const variants = createAssetPathVariants(file, [
11996
+ root,
11997
+ configService.absoluteSrcRoot,
11998
+ configService.cwd
11999
+ ]);
12000
+ return variants.some((variant) => includeMatcher(variant)) && !variants.some((variant) => ignoreMatcher(variant));
12001
+ });
12002
+ });
11977
12003
  });
11978
12004
  return Promise.all(crawlPromises).then((groups) => {
11979
12005
  const files = /* @__PURE__ */ new Set();
@@ -12604,6 +12630,44 @@ function createJsonEmitManager(configService) {
12604
12630
  };
12605
12631
  }
12606
12632
  //#endregion
12633
+ //#region src/utils/file/vueSfcSignature.ts
12634
+ function hashPayload(payload) {
12635
+ return createHash("sha256").update(JSON.stringify(payload)).digest("hex").slice(0, 16);
12636
+ }
12637
+ function serializeAttrs(attrs) {
12638
+ return Object.fromEntries(Object.entries(attrs).sort(([a], [b]) => a.localeCompare(b)));
12639
+ }
12640
+ function serializeBlock(block, content) {
12641
+ if (!block) return null;
12642
+ return {
12643
+ type: block.type,
12644
+ attrs: serializeAttrs(block.attrs),
12645
+ content: content ?? block.content
12646
+ };
12647
+ }
12648
+ function stripScriptSetupJsonMacros(content, filename) {
12649
+ try {
12650
+ return stripJsonMacroCallsFromCode(content, filename);
12651
+ } catch {
12652
+ return content;
12653
+ }
12654
+ }
12655
+ function buildNonJsonDescriptorPayload(descriptor, filename) {
12656
+ const scriptSetupContent = descriptor.scriptSetup ? stripScriptSetupJsonMacros(descriptor.scriptSetup.content, filename) : void 0;
12657
+ return {
12658
+ script: serializeBlock(descriptor.script),
12659
+ scriptSetup: serializeBlock(descriptor.scriptSetup, scriptSetupContent),
12660
+ template: serializeBlock(descriptor.template),
12661
+ styles: descriptor.styles.map((style) => serializeBlock(style)),
12662
+ customBlocks: descriptor.customBlocks.filter((block) => block.type !== "json").map((block) => serializeBlock(block))
12663
+ };
12664
+ }
12665
+ function resolveVueSfcNonJsonSignature(source, filename) {
12666
+ const { descriptor, errors } = parse(source, { filename });
12667
+ if (errors.length) return;
12668
+ return hashPayload(buildNonJsonDescriptorPayload(descriptor, filename));
12669
+ }
12670
+ //#endregion
12607
12671
  //#region src/plugins/utils/analyze.ts
12608
12672
  function collectPluginExportEntries(plugins, root) {
12609
12673
  if (!isObject(plugins)) return [];
@@ -14292,7 +14356,13 @@ async function resolveUsingComponentReference(ctx, configService, reExportResolu
14292
14356
  }
14293
14357
  async function resolveUsingComponentPath(ctx, configService, reExportResolutionCache, importSource, importerFilename, info) {
14294
14358
  if (!info) return;
14295
- return (await resolveUsingComponentReference(ctx, configService, reExportResolutionCache, importSource, importerFilename, info)).from;
14359
+ const resolved = await resolveUsingComponentReference(ctx, configService, reExportResolutionCache, importSource, importerFilename, info);
14360
+ const sourceType = resolved.resolvedId?.endsWith(".vue") ? "wevu-sfc" : "native";
14361
+ return {
14362
+ from: resolved.from,
14363
+ resolvedId: resolved.resolvedId,
14364
+ sourceType
14365
+ };
14296
14366
  }
14297
14367
  function createUsingComponentPathResolver(ctx, configService, reExportResolutionCache) {
14298
14368
  return async (importSource, importerFilename, info) => {
@@ -14416,6 +14486,17 @@ function createEntryLoader(options) {
14416
14486
  else jsonPath = changeFileExtension(id, ".json");
14417
14487
  const vueEntryPath = id.endsWith(".vue") ? id : await findVueEntry(removeExtensionDeep(id));
14418
14488
  if (vueEntryPath) addNormalizedWatchFile(this, vueEntryPath);
14489
+ let vueSource;
14490
+ const readVueSource = async () => {
14491
+ if (!vueEntryPath) return;
14492
+ if (vueSource !== void 0) return vueSource;
14493
+ try {
14494
+ vueSource = await fs.readFile(vueEntryPath, "utf-8");
14495
+ } catch (error) {
14496
+ if (!(error && typeof error === "object" && "code" in error && error.code === "ENOENT" && configService.isDev && !await fs.pathExists(vueEntryPath))) throw error;
14497
+ }
14498
+ return vueSource;
14499
+ };
14419
14500
  if (!jsonEntry.path) {
14420
14501
  if (vueEntryPath) {
14421
14502
  const configFromVue = await extractConfigFromVue(vueEntryPath);
@@ -14497,12 +14578,7 @@ function createEntryLoader(options) {
14497
14578
  reExportResolutionCache
14498
14579
  });
14499
14580
  if (type === "page") {
14500
- let vueSource;
14501
- try {
14502
- vueSource = await fs.readFile(vueEntryPath, "utf-8");
14503
- } catch (error) {
14504
- if (!(error && typeof error === "object" && "code" in error && error.code === "ENOENT" && configService.isDev && !await fs.pathExists(vueEntryPath))) throw error;
14505
- }
14581
+ const vueSource = await readVueSource();
14506
14582
  if (vueSource) {
14507
14583
  const layoutPlan = await resolvePageLayoutPlan(vueSource, vueEntryPath, configService);
14508
14584
  if (layoutPlan) {
@@ -14529,6 +14605,13 @@ function createEntryLoader(options) {
14529
14605
  }
14530
14606
  }
14531
14607
  }
14608
+ if (configService.isDev && hasJsonEntry && vueEntryPath) {
14609
+ const vueSource = await readVueSource();
14610
+ if (vueSource) {
14611
+ const nonJsonSignature = resolveVueSfcNonJsonSignature(vueSource, vueEntryPath);
14612
+ if (nonJsonSignature) ctx.runtimeState.build.hmr.vueEntryNonJsonSignatures.set(normalizedId, nonJsonSignature);
14613
+ }
14614
+ }
14532
14615
  await ctx.autoImportService?.awaitPendingRegistrations?.();
14533
14616
  applyAutoImports(baseName, json);
14534
14617
  const componentEntries = analyzeCommonJson(json);
@@ -14665,6 +14748,7 @@ function resolvePendingEntryIds(options) {
14665
14748
  const startedAt = performance.now();
14666
14749
  const relatedChunkIds = /* @__PURE__ */ new Set();
14667
14750
  for (const entryId of options.dirtyEntrySet) {
14751
+ if (options.dirtyEntryReasons.get(entryId) === "metadata") continue;
14668
14752
  const chunkIds = options.sharedChunksByEntry.get(entryId);
14669
14753
  if (!chunkIds?.size) continue;
14670
14754
  for (const chunkId of chunkIds) relatedChunkIds.add(chunkId);
@@ -14680,19 +14764,22 @@ function resolvePendingEntryIds(options) {
14680
14764
  const importers = options.sharedChunkImporters.get(chunkId);
14681
14765
  if (!importers) continue;
14682
14766
  if (importers.size <= 1) continue;
14767
+ const isSourceSharedChunk = options.sourceSharedChunks?.has(chunkId) === true;
14683
14768
  let hasDependencyDrivenImporter = false;
14684
14769
  let hasDirectDirtyImporter = false;
14685
14770
  for (const importer of importers) {
14686
14771
  if (options.dirtyEntrySet.has(importer) && options.dirtyEntryReasons.get(importer) === "dependency") {
14687
14772
  hasDependencyDrivenImporter = true;
14688
- break;
14773
+ continue;
14774
+ }
14775
+ if (options.dirtyEntrySet.has(importer) && options.dirtyEntryReasons.get(importer) === "direct") {
14776
+ if (isSourceSharedChunk) hasDirectDirtyImporter = true;
14689
14777
  }
14690
- if (options.dirtyEntrySet.has(importer) && options.dirtyEntryReasons.get(importer) === "direct") hasDirectDirtyImporter = true;
14691
14778
  }
14692
- if (!hasDependencyDrivenImporter && !hasDirectDirtyImporter) continue;
14779
+ if (!hasDependencyDrivenImporter && !(hasDirectDirtyImporter && isSourceSharedChunk)) continue;
14693
14780
  if (hasDependencyDrivenImporter && hasDirectDirtyImporter) expansionMode = "mixed";
14694
- else if (hasDependencyDrivenImporter) expansionMode = expansionMode && expansionMode !== "dependency" ? "mixed" : "dependency";
14695
14781
  else if (hasDirectDirtyImporter) expansionMode = expansionMode && expansionMode !== "direct" ? "mixed" : "direct";
14782
+ else expansionMode = expansionMode && expansionMode !== "dependency" ? "mixed" : "dependency";
14696
14783
  for (const importer of importers) {
14697
14784
  if (!pending.has(importer)) expandedImporters.add(importer);
14698
14785
  pending.add(importer);
@@ -14769,6 +14856,7 @@ function useLoadEntry(ctx, options) {
14769
14856
  const hmrSharedChunksMode = options?.hmr?.sharedChunks ?? "auto";
14770
14857
  const hmrSharedChunkImporters = options?.hmr?.sharedChunkImporters;
14771
14858
  const hmrSharedChunksByEntry = options?.hmr?.sharedChunksByEntry;
14859
+ const hmrSourceSharedChunks = options?.hmr?.sourceSharedChunks;
14772
14860
  return {
14773
14861
  loadEntry,
14774
14862
  entriesMap,
@@ -14780,7 +14868,9 @@ function useLoadEntry(ctx, options) {
14780
14868
  normalizeEntry,
14781
14869
  markEntryDirty(entryId, reason = "direct") {
14782
14870
  dirtyEntrySet.add(entryId);
14783
- dirtyEntryReasons.set(entryId, reason);
14871
+ const previous = dirtyEntryReasons.get(entryId);
14872
+ const nextReason = previous === "dependency" || reason === "dependency" ? "dependency" : previous === "direct" || reason === "direct" ? "direct" : reason;
14873
+ dirtyEntryReasons.set(entryId, nextReason);
14784
14874
  loadedEntrySet.delete(entryId);
14785
14875
  },
14786
14876
  async emitDirtyEntries() {
@@ -14800,6 +14890,7 @@ function useLoadEntry(ctx, options) {
14800
14890
  dirtyReasonSummary: ctx.runtimeState.build.hmr.profile.dirtyReasonSummary,
14801
14891
  sharedChunkImporters: hmrSharedChunkImporters,
14802
14892
  sharedChunksByEntry: hmrSharedChunksByEntry,
14893
+ sourceSharedChunks: hmrSourceSharedChunks,
14803
14894
  subPackageRoots: new Set(ctx.scanService?.subPackageMap?.keys?.() ?? []),
14804
14895
  relativeAbsoluteSrcRoot: ctx.configService.relativeAbsoluteSrcRoot.bind(ctx.configService)
14805
14896
  });
@@ -14807,11 +14898,11 @@ function useLoadEntry(ctx, options) {
14807
14898
  const pending = [];
14808
14899
  lastActualEmittedEntryIds.clear();
14809
14900
  for (const entryId of pendingEntryIds) {
14901
+ dirtyEntrySet.delete(entryId);
14902
+ dirtyEntryReasons.delete(entryId);
14810
14903
  const resolvedId = resolvedEntryMap.get(entryId);
14811
14904
  if (!resolvedId) continue;
14812
14905
  pending.push(resolvedId);
14813
- dirtyEntrySet.delete(entryId);
14814
- dirtyEntryReasons.delete(entryId);
14815
14906
  }
14816
14907
  if (pending.length) await Promise.all(emitEntriesChunks.call(this, pending));
14817
14908
  const actualEmittedEntryIds = new Set(lastActualEmittedEntryIds);
@@ -14981,6 +15072,17 @@ function collectAffectedEntries(state, startId) {
14981
15072
  }
14982
15073
  return affected;
14983
15074
  }
15075
+ function collectAffectedEntriesFromSharedChunks(state, startId) {
15076
+ const affected = /* @__PURE__ */ new Set();
15077
+ const chunkIds = state.hmrSharedChunksByModule.get(normalizeFsResolvedId(startId));
15078
+ if (!chunkIds?.size) return affected;
15079
+ for (const chunkId of chunkIds) {
15080
+ const importers = state.hmrSharedChunkImporters.get(chunkId);
15081
+ if (!importers?.size) continue;
15082
+ for (const importer of importers) if (state.resolvedEntryMap.has(importer)) affected.add(importer);
15083
+ }
15084
+ return affected;
15085
+ }
14984
15086
  function refreshModuleGraph(pluginCtx, state) {
14985
15087
  state.moduleImporters.clear();
14986
15088
  state.entryModuleIds.clear();
@@ -15028,11 +15130,37 @@ function appendSharedChunkImporters(bundle, state, onlyEntryIds, previousImporte
15028
15130
  }
15029
15131
  return trackedImporterIds;
15030
15132
  };
15133
+ const isProjectSourceModule = (rawId) => {
15134
+ if (!rawId) return false;
15135
+ const absoluteSrcRoot = state.ctx?.configService?.absoluteSrcRoot;
15136
+ if (!absoluteSrcRoot) return false;
15137
+ const normalizedRoot = normalizeFsResolvedId(absoluteSrcRoot);
15138
+ const normalizedId = normalizeFsResolvedId(rawId);
15139
+ if (isSkippableResolvedId(normalizedId)) return false;
15140
+ return normalizedId === normalizedRoot || normalizedId.startsWith(`${normalizedRoot}/`);
15141
+ };
15142
+ const collectProjectSourceModules = (chunk) => {
15143
+ const moduleIds = /* @__PURE__ */ new Set();
15144
+ if (isProjectSourceModule(chunk.facadeModuleId)) moduleIds.add(normalizeFsResolvedId(chunk.facadeModuleId));
15145
+ if (Array.isArray(chunk.moduleIds)) {
15146
+ for (const moduleId of chunk.moduleIds) if (isProjectSourceModule(moduleId)) moduleIds.add(normalizeFsResolvedId(moduleId));
15147
+ }
15148
+ for (const moduleId of Object.keys(chunk.modules ?? {})) if (isProjectSourceModule(moduleId)) moduleIds.add(normalizeFsResolvedId(moduleId));
15149
+ return moduleIds;
15150
+ };
15151
+ const addSharedChunkModule = (moduleId, chunkId) => {
15152
+ const current = state.hmrSharedChunksByModule.get(moduleId);
15153
+ if (current) current.add(chunkId);
15154
+ else state.hmrSharedChunksByModule.set(moduleId, new Set([chunkId]));
15155
+ };
15031
15156
  for (const [bundleKey, output] of Object.entries(bundle)) {
15032
15157
  if (output?.type !== "chunk") continue;
15033
15158
  const chunk = output;
15034
15159
  if (!chunk.fileName) chunk.fileName = bundleKey;
15160
+ const projectSourceModules = collectProjectSourceModules(chunk);
15035
15161
  bundleChunks.set(chunk.fileName, chunk);
15162
+ if (projectSourceModules.size > 0) state.hmrSourceSharedChunks.add(chunk.fileName);
15163
+ for (const moduleId of projectSourceModules) addSharedChunkModule(moduleId, chunk.fileName);
15036
15164
  }
15037
15165
  const trackedImporterIdsByChunk = /* @__PURE__ */ new Map();
15038
15166
  for (const [fileName, chunk] of bundleChunks) {
@@ -15086,6 +15214,8 @@ function refreshSharedChunkImporters(bundle, state) {
15086
15214
  state.hmrSharedChunkImporters.clear();
15087
15215
  state.hmrSharedChunksByEntry.clear();
15088
15216
  state.hmrSharedChunkDependencies.clear();
15217
+ state.hmrSharedChunksByModule.clear();
15218
+ state.hmrSourceSharedChunks.clear();
15089
15219
  appendSharedChunkImporters(bundle, state);
15090
15220
  }
15091
15221
  function refreshPartialSharedChunkImporters(bundle, state, entryIds) {
@@ -17644,11 +17774,22 @@ function createBuildStartHook(state) {
17644
17774
  await emitDirtyEntries.call(this);
17645
17775
  };
17646
17776
  }
17777
+ async function isVueEntryJsonOnlyUpdate(state, normalizedId) {
17778
+ if (!normalizedId.endsWith(".vue")) return false;
17779
+ const previous = state.ctx.runtimeState.build.hmr.vueEntryNonJsonSignatures.get(normalizedId);
17780
+ if (!previous) return false;
17781
+ try {
17782
+ return resolveVueSfcNonJsonSignature(await fs.readFile(normalizedId, "utf-8"), normalizedId) === previous;
17783
+ } catch {
17784
+ return false;
17785
+ }
17786
+ }
17647
17787
  async function processChangedFile(state, id, event) {
17648
17788
  const { ctx, subPackageMeta, loadEntry, loadedEntrySet, resolvedEntryMap } = state;
17649
17789
  const { scanService, configService, buildService } = ctx;
17650
17790
  const normalizedId = normalizeFsResolvedId(id);
17651
17791
  if (isSkippableResolvedId(normalizedId)) return;
17792
+ const importerGraphAffectedEntryIds = /* @__PURE__ */ new Set();
17652
17793
  const relativeSrc = configService.relativeAbsoluteSrcRoot(normalizedId);
17653
17794
  const affectedLayoutEntryIds = /* @__PURE__ */ new Set();
17654
17795
  const dirtyReasonStats = /* @__PURE__ */ new Map();
@@ -17659,6 +17800,7 @@ async function processChangedFile(state, id, event) {
17659
17800
  const declaredEntryType = state.entriesMap.get(removeExtensionDeep(relativeSrc))?.type;
17660
17801
  const isDeletedMissingSelf = event === "delete" && !await fs.pathExists(normalizedId);
17661
17802
  const isAutoRouteFile = Boolean(ctx.autoRoutesService?.isRouteFile(normalizedId));
17803
+ if (isDeletedMissingSelf) ctx.runtimeState.build.hmr.vueEntryNonJsonSignatures.delete(normalizedId);
17662
17804
  if ((event === "create" || isDeletedMissingSelf) && isAutoRouteFile) {
17663
17805
  if (await ctx.autoRoutesService?.handleFileChange(normalizedId, event)) dirtyReasonStats.set("auto-routes-topology", 1);
17664
17806
  }
@@ -17705,13 +17847,23 @@ async function processChangedFile(state, id, event) {
17705
17847
  for (const entryId of resolvedEntryMap.keys()) markEntryDirtyWithCause(entryId, "dependency", "layout-fallback-full");
17706
17848
  return [...dirtyReasonStats.entries()].map(([cause, count]) => `${cause}:${count}`);
17707
17849
  }
17708
- if (!isDeletedMissingSelf && (loadedEntrySet.has(normalizedId) || declaredEntryType === "page" || declaredEntryType === "component")) markEntryDirtyWithCause(normalizedId, "direct", "entry-direct");
17709
- else if (state.layoutEntryDependents.size && state.layoutEntryDependents.get(normalizedId)?.size) {
17850
+ if (!isDeletedMissingSelf && (loadedEntrySet.has(normalizedId) || declaredEntryType === "page" || declaredEntryType === "component")) {
17851
+ const isJsonOnlyVueEntryUpdate = event === "update" && await isVueEntryJsonOnlyUpdate(state, normalizedId);
17852
+ markEntryDirtyWithCause(normalizedId, isJsonOnlyVueEntryUpdate ? "metadata" : "direct", isJsonOnlyVueEntryUpdate ? "entry-json-only" : "entry-direct");
17853
+ } else if (state.layoutEntryDependents.size && state.layoutEntryDependents.get(normalizedId)?.size) {
17710
17854
  const affectedEntries = state.layoutEntryDependents.get(normalizedId);
17711
17855
  for (const entryId of affectedEntries) markEntryDirtyWithCause(entryId, "dependency", "layout-dependent");
17712
17856
  } else if (state.moduleImporters.size && state.entryModuleIds.size) {
17713
17857
  const affected = collectAffectedEntries(state, normalizedId);
17714
- if (affected.size) for (const entryId of affected) markEntryDirtyWithCause(entryId, "dependency", "importer-graph");
17858
+ if (affected.size) for (const entryId of affected) {
17859
+ importerGraphAffectedEntryIds.add(entryId);
17860
+ markEntryDirtyWithCause(entryId, "dependency", "importer-graph");
17861
+ }
17862
+ }
17863
+ const sharedChunkAffected = collectAffectedEntriesFromSharedChunks(state, normalizedId);
17864
+ if (sharedChunkAffected.size) for (const entryId of sharedChunkAffected) {
17865
+ if (importerGraphAffectedEntryIds.has(entryId)) continue;
17866
+ markEntryDirtyWithCause(entryId, "dependency", "shared-chunk-source");
17715
17867
  }
17716
17868
  const relativeCwd = configService.relativeCwd(normalizedId);
17717
17869
  let handledByIndependentWatcher = false;
@@ -17849,6 +18001,8 @@ function weappVite(ctx, subPackageMeta) {
17849
18001
  const hmrSharedChunkImporters = /* @__PURE__ */ new Map();
17850
18002
  const hmrSharedChunksByEntry = /* @__PURE__ */ new Map();
17851
18003
  const hmrSharedChunkDependencies = /* @__PURE__ */ new Map();
18004
+ const hmrSharedChunksByModule = /* @__PURE__ */ new Map();
18005
+ const hmrSourceSharedChunks = /* @__PURE__ */ new Set();
17852
18006
  const hmrState = {
17853
18007
  didEmitAllEntries: false,
17854
18008
  hasBuiltOnce: false,
@@ -17860,11 +18014,14 @@ function weappVite(ctx, subPackageMeta) {
17860
18014
  sharedChunks: hmrSharedChunksMode,
17861
18015
  sharedChunkImporters: hmrSharedChunkImporters,
17862
18016
  sharedChunksByEntry: hmrSharedChunksByEntry,
18017
+ sourceSharedChunks: hmrSourceSharedChunks,
17863
18018
  setDidEmitAllEntries: (value) => {
17864
18019
  hmrState.didEmitAllEntries = value;
18020
+ if (ctx.runtimeState?.build?.hmr) ctx.runtimeState.build.hmr.didEmitAllEntries = value;
17865
18021
  },
17866
18022
  setLastEmittedEntries: (entryIds) => {
17867
18023
  hmrState.lastEmittedEntryIds = new Set(entryIds);
18024
+ if (ctx.runtimeState?.build?.hmr) ctx.runtimeState.build.hmr.lastEmittedEntryIds = new Set(entryIds);
17868
18025
  }
17869
18026
  }
17870
18027
  });
@@ -17889,7 +18046,9 @@ function weappVite(ctx, subPackageMeta) {
17889
18046
  hmrSharedChunksMode,
17890
18047
  hmrSharedChunkImporters,
17891
18048
  hmrSharedChunksByEntry,
17892
- hmrSharedChunkDependencies
18049
+ hmrSharedChunkDependencies,
18050
+ hmrSharedChunksByModule,
18051
+ hmrSourceSharedChunks
17893
18052
  };
17894
18053
  return [
17895
18054
  createWxssResolverPlugin(state),
@@ -19014,6 +19173,8 @@ function scanWxml(wxml, options) {
19014
19173
  //#endregion
19015
19174
  //#region src/plugins/vue/transform/bundle/platform.ts
19016
19175
  const LEADING_DOT_SLASH_RE$1 = /^\.\//;
19176
+ const SCOPED_SLOT_GENERIC_KEY_RE = /^scoped-slots-/;
19177
+ const WEAPP_SCOPED_SLOT_GENERIC_PLACEHOLDER_TEMPLATE = "<view wx:if=\"{{false}}\" />";
19017
19178
  function resolveVueBundlePlatformOptions(options) {
19018
19179
  return {
19019
19180
  normalizeUsingComponents: resolveVueTransformJsonPlatformOptions({
@@ -19035,15 +19196,29 @@ function resolveVueBundlePlatformAssetOptions(options) {
19035
19196
  alipayNpmMode: options.configService?.weappViteConfig?.npm?.alipayNpmMode
19036
19197
  };
19037
19198
  }
19199
+ function shouldNormalizeWeappScopedSlotGenericPlaceholder(config) {
19200
+ if (!config || typeof config !== "object" || Array.isArray(config)) return false;
19201
+ const componentGenerics = config.componentGenerics;
19202
+ if (!componentGenerics || typeof componentGenerics !== "object" || Array.isArray(componentGenerics)) return false;
19203
+ return Object.entries(componentGenerics).some(([key, value]) => {
19204
+ if (!SCOPED_SLOT_GENERIC_KEY_RE.test(key)) return false;
19205
+ if (value === true) return true;
19206
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
19207
+ const defaultValue = value.default;
19208
+ return typeof defaultValue !== "string" || !defaultValue.trim();
19209
+ });
19210
+ }
19038
19211
  function normalizeVueConfigForPlatform(config, options) {
19039
19212
  const jsonPlatformOptions = resolveVueTransformJsonPlatformOptions({
19040
19213
  platform: options.platform,
19041
19214
  packageJson: { dependencies: options.dependencies },
19042
19215
  weappViteConfig: { npm: { alipayNpmMode: options.alipayNpmMode } }
19043
19216
  });
19044
- if (!config || !jsonPlatformOptions.normalizeUsingComponents) return config;
19217
+ if (!config) return config;
19045
19218
  try {
19046
- return resolveJson({ json: JSON.parse(config) }, void 0, options.platform, {
19219
+ const parsed = JSON.parse(config);
19220
+ if (!(jsonPlatformOptions.normalizeUsingComponents || options.platform === "weapp" && shouldNormalizeWeappScopedSlotGenericPlaceholder(parsed))) return config;
19221
+ return resolveJson({ json: parsed }, void 0, options.platform, {
19047
19222
  dependencies: jsonPlatformOptions.dependencies,
19048
19223
  alipayNpmMode: jsonPlatformOptions.alipayNpmMode
19049
19224
  }) ?? config;
@@ -19086,18 +19261,24 @@ function emitPlatformTemplateAsset(bundle, options) {
19086
19261
  emitSfcTemplateIfMissing(options.pluginCtx, bundle, options.relativeBase, normalizedTemplate, options.templateExtension);
19087
19262
  return normalizedTemplate;
19088
19263
  }
19089
- function resolveAlipayGenericPlaceholderBase(relativeBase) {
19264
+ function resolveGenericPlaceholderBase(relativeBase, placeholder) {
19090
19265
  const dirIndex = relativeBase.lastIndexOf("/");
19091
19266
  const dir = dirIndex >= 0 ? relativeBase.slice(0, dirIndex) : "";
19092
- const placeholderName = ALIPAY_GENERIC_COMPONENT_PLACEHOLDER.replace(LEADING_DOT_SLASH_RE$1, "");
19267
+ const placeholderName = placeholder.replace(LEADING_DOT_SLASH_RE$1, "");
19093
19268
  return dir ? `${dir}/${placeholderName}` : placeholderName;
19094
19269
  }
19095
- function emitAlipayGenericPlaceholderAssetsByBase(ctx, bundle, placeholderBase, outputExtensions) {
19270
+ function resolveAlipayGenericPlaceholderBase(relativeBase) {
19271
+ return resolveGenericPlaceholderBase(relativeBase, ALIPAY_GENERIC_COMPONENT_PLACEHOLDER);
19272
+ }
19273
+ function resolveWeappScopedSlotGenericPlaceholderBase(relativeBase) {
19274
+ return resolveGenericPlaceholderBase(relativeBase, WEAPP_SCOPED_SLOT_GENERIC_COMPONENT_PLACEHOLDER);
19275
+ }
19276
+ function emitAlipayGenericPlaceholderAssetsByBase(ctx, bundle, placeholderBase, outputExtensions, options) {
19096
19277
  const templateExtension = outputExtensions?.wxml ?? "wxml";
19097
19278
  const jsonExtension = outputExtensions?.json ?? "json";
19098
19279
  const scriptExtension = outputExtensions?.js ?? "js";
19099
- emitSfcTemplateIfMissing(ctx, bundle, placeholderBase, "<view />", templateExtension);
19100
- emitSfcJsonAsset(ctx, bundle, placeholderBase, { config: JSON.stringify({ component: true }) }, {
19280
+ emitSfcTemplateIfMissing(ctx, bundle, placeholderBase, options?.templateSource ?? "<view />", templateExtension);
19281
+ emitSfcJsonAsset(ctx, bundle, placeholderBase, { config: JSON.stringify(options?.jsonConfig ?? { component: true }) }, {
19101
19282
  extension: jsonExtension,
19102
19283
  kind: "component"
19103
19284
  });
@@ -19121,7 +19302,26 @@ function shouldEmitAlipayGenericPlaceholder(configSource) {
19121
19302
  return value.default === ALIPAY_GENERIC_COMPONENT_PLACEHOLDER;
19122
19303
  });
19123
19304
  }
19305
+ function shouldEmitWeappScopedSlotGenericPlaceholder(configSource) {
19306
+ if (!configSource) return false;
19307
+ let config;
19308
+ try {
19309
+ const parsed = JSON.parse(configSource);
19310
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return false;
19311
+ config = parsed;
19312
+ } catch {
19313
+ return false;
19314
+ }
19315
+ const componentGenerics = config.componentGenerics;
19316
+ if (!componentGenerics || typeof componentGenerics !== "object" || Array.isArray(componentGenerics)) return false;
19317
+ return Object.entries(componentGenerics).some(([key, value]) => {
19318
+ if (!SCOPED_SLOT_GENERIC_KEY_RE.test(key)) return false;
19319
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
19320
+ return value.default === WEAPP_SCOPED_SLOT_GENERIC_COMPONENT_PLACEHOLDER;
19321
+ });
19322
+ }
19124
19323
  function resolveGenericPlaceholderBaseForPlatform(relativeBase, configSource, platform) {
19324
+ if (platform === "weapp") return shouldEmitWeappScopedSlotGenericPlaceholder(configSource) ? resolveWeappScopedSlotGenericPlaceholderBase(relativeBase) : void 0;
19125
19325
  if (!resolveVueBundlePlatformOptions({ platform }).emitGenericPlaceholder || !configSource) return;
19126
19326
  if (!shouldEmitAlipayGenericPlaceholder(configSource)) return;
19127
19327
  return resolveAlipayGenericPlaceholderBase(relativeBase);
@@ -19129,7 +19329,13 @@ function resolveGenericPlaceholderBaseForPlatform(relativeBase, configSource, pl
19129
19329
  function emitAlipayGenericPlaceholderAssets(ctx, bundle, relativeBase, configSource, outputExtensions, platform) {
19130
19330
  const placeholderBase = resolveGenericPlaceholderBaseForPlatform(relativeBase, configSource, platform);
19131
19331
  if (!placeholderBase) return;
19132
- emitAlipayGenericPlaceholderAssetsByBase(ctx, bundle, placeholderBase, outputExtensions);
19332
+ emitAlipayGenericPlaceholderAssetsByBase(ctx, bundle, placeholderBase, outputExtensions, platform === "weapp" ? {
19333
+ jsonConfig: {
19334
+ component: true,
19335
+ options: { virtualHost: true }
19336
+ },
19337
+ templateSource: WEAPP_SCOPED_SLOT_GENERIC_PLACEHOLDER_TEMPLATE
19338
+ } : void 0);
19133
19339
  }
19134
19340
  function prepareNormalizedVueConfigForPlatform(options) {
19135
19341
  return normalizeVueConfigForPlatform(options.config, {
@@ -19152,7 +19358,13 @@ function resolvePlatformConfigAssetState(options) {
19152
19358
  }
19153
19359
  function emitPlatformConfigSideEffects(bundle, options) {
19154
19360
  if (options.genericPlaceholderBase) {
19155
- emitAlipayGenericPlaceholderAssetsByBase(options.pluginCtx, bundle, options.genericPlaceholderBase, options.outputExtensions);
19361
+ emitAlipayGenericPlaceholderAssetsByBase(options.pluginCtx, bundle, options.genericPlaceholderBase, options.outputExtensions, options.platform === "weapp" ? {
19362
+ jsonConfig: {
19363
+ component: true,
19364
+ options: { virtualHost: true }
19365
+ },
19366
+ templateSource: WEAPP_SCOPED_SLOT_GENERIC_PLACEHOLDER_TEMPLATE
19367
+ } : void 0);
19156
19368
  return;
19157
19369
  }
19158
19370
  emitAlipayGenericPlaceholderAssets(options.pluginCtx, bundle, options.relativeBase, options.config, options.outputExtensions, options.platform);
@@ -19423,7 +19635,7 @@ function buildCompileVueFileOptions(ctx, pluginCtx, vuePath, isPage, isApp, conf
19423
19635
  const importerBaseName = removeExtensionDeep(vuePath);
19424
19636
  const autoImportResolveCache = /* @__PURE__ */ new Map();
19425
19637
  const scopedSlotsCompiler = configService.weappViteConfig?.vue?.template?.scopedSlotsCompiler ?? "auto";
19426
- const scopedSlotsRequireProps = configService.weappViteConfig?.vue?.template?.scopedSlotsRequireProps ?? scopedSlotsCompiler !== "augmented";
19638
+ const scopedSlotsRequireProps = configService.weappViteConfig?.vue?.template?.scopedSlotsRequireProps ?? false;
19427
19639
  const slotSingleRootNoWrapper = configService.weappViteConfig?.vue?.template?.slotSingleRootNoWrapper ?? false;
19428
19640
  const slotMultipleInstance = configService.weappViteConfig?.vue?.template?.slotMultipleInstance ?? true;
19429
19641
  const htmlTagToWxml = configService.weappViteConfig?.vue?.template?.htmlTagToWxml;
@@ -19469,7 +19681,20 @@ function buildCompileVueFileOptions(ctx, pluginCtx, vuePath, isPage, isApp, conf
19469
19681
  match,
19470
19682
  version
19471
19683
  });
19472
- return match?.value;
19684
+ if (!match?.value) return;
19685
+ if (match.kind === "local") {
19686
+ const resolvedId = match.entry.templatePath;
19687
+ const sourceType = resolvedId?.endsWith(".vue") ? "wevu-sfc" : "native";
19688
+ return {
19689
+ ...match.value,
19690
+ resolvedId,
19691
+ sourceType
19692
+ };
19693
+ }
19694
+ return {
19695
+ ...match.value,
19696
+ sourceType: "native"
19697
+ };
19473
19698
  }
19474
19699
  },
19475
19700
  template: {
@@ -20282,7 +20507,10 @@ function resolveVueBundleEmitState(state) {
20282
20507
  const { ctx, compilationCache } = state;
20283
20508
  const { configService, scanService } = ctx;
20284
20509
  if (!configService || !scanService) return;
20285
- return { compilationEntries: Array.from(compilationCache.entries()) };
20510
+ const emittedEntryIds = Boolean(configService.isDev && ctx.runtimeState?.build?.hmr?.profile?.event === "update" && !ctx.runtimeState.build.hmr.didEmitAllEntries && ctx.runtimeState.build.hmr.lastEmittedEntryIds.size > 0) ? ctx.runtimeState.build.hmr.lastEmittedEntryIds : void 0;
20511
+ return { compilationEntries: Array.from(compilationCache.entries()).filter(([id]) => {
20512
+ return !emittedEntryIds || emittedEntryIds.has(normalizeFsResolvedId(id));
20513
+ }) };
20286
20514
  }
20287
20515
  async function emitCompiledBundleEntries(bundle, state, compilationEntries) {
20288
20516
  for (const [filename, cached] of compilationEntries) await emitCompiledVueEntryAssets(bundle, state, filename, cached);
@@ -22055,6 +22283,9 @@ function createRuntimeState() {
22055
22283
  entriesMap: /* @__PURE__ */ new Map(),
22056
22284
  layoutEntryDependents: /* @__PURE__ */ new Map(),
22057
22285
  entryLayoutDependencies: /* @__PURE__ */ new Map(),
22286
+ vueEntryNonJsonSignatures: /* @__PURE__ */ new Map(),
22287
+ didEmitAllEntries: false,
22288
+ lastEmittedEntryIds: /* @__PURE__ */ new Set(),
22058
22289
  recentProfiles: [],
22059
22290
  profile: {}
22060
22291
  }
@@ -22229,7 +22460,7 @@ async function loadAppEntry(ctx, scanState) {
22229
22460
  const vueAppPath = await findVueEntry(appBasename);
22230
22461
  let configFromVue;
22231
22462
  if (!appConfigFile && vueAppPath) {
22232
- const { extractConfigFromVue } = await import("./file-DBSS-d92.mjs");
22463
+ const { extractConfigFromVue } = await import("./file-mjPummvX.mjs");
22233
22464
  configFromVue = await extractConfigFromVue(vueAppPath);
22234
22465
  if (configFromVue) appConfigFile = vueAppPath;
22235
22466
  }
@@ -84,7 +84,7 @@ function resolveAutoRoutesMacroImportPath() {
84
84
  }
85
85
  async function resolveAutoRoutesInlineSnapshot() {
86
86
  try {
87
- const { getCompilerContext } = await import("./getInstance-BxGRfA3y.mjs");
87
+ const { getCompilerContext } = await import("./getInstance-B1BKtMNV.mjs");
88
88
  const compilerContext = getCompilerContext();
89
89
  const service = compilerContext.autoRoutesService;
90
90
  const reference = service?.getReference?.();
@@ -0,0 +1,2 @@
1
+ import { t as extractConfigFromVue } from "./file-C0a3v0yb.mjs";
2
+ export { extractConfigFromVue };
@@ -0,0 +1,2 @@
1
+ import { i as getCompilerContext } from "./createContext-Cwf_Dx0p.mjs";
2
+ export { getCompilerContext };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Ref, Bn as resolveWeappViteHostMeta, C as LoadConfigOptions, D as MethodDefinitions, E as InlineConfig, F as RolldownPlugin, Fn as WeappViteHostMeta, I as RolldownPluginOption, In as WeappViteRuntime, L as RolldownWatchOptions, Ln as applyWeappViteHostMeta, M as RolldownBuild, N as RolldownOptions, O as Plugin, P as RolldownOutput, Pn as WEAPP_VITE_HOST_NAME, R as RolldownWatcher, Rn as createWeappViteHostMeta, S as CompilerContext, T as ConfigEnv, _ as definePageJson, a as UserConfigFnNoEnvPlain, c as UserConfigFnPromise, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, i as UserConfigFnNoEnv, j as ResolvedConfig, k as PluginOption, l as defineConfig, m as Theme, n as UserConfigExport, nt as WeappViteConfig, o as UserConfigFnObject, p as Sitemap, r as UserConfigFn, s as UserConfigFnObjectPlain, t as UserConfig, u as App, v as defineSitemapJson, w as ComputedDefinitions, y as defineThemeJson, z as ViteDevServer, zn as isWeappViteHost } from "./config-BEJTp6sp.mjs";
1
+ import { A as Ref, Bn as resolveWeappViteHostMeta, C as LoadConfigOptions, D as MethodDefinitions, E as InlineConfig, F as RolldownPlugin, Fn as WeappViteHostMeta, I as RolldownPluginOption, In as WeappViteRuntime, L as RolldownWatchOptions, Ln as applyWeappViteHostMeta, M as RolldownBuild, N as RolldownOptions, O as Plugin, P as RolldownOutput, Pn as WEAPP_VITE_HOST_NAME, R as RolldownWatcher, Rn as createWeappViteHostMeta, S as CompilerContext, T as ConfigEnv, _ as definePageJson, a as UserConfigFnNoEnvPlain, c as UserConfigFnPromise, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, i as UserConfigFnNoEnv, j as ResolvedConfig, k as PluginOption, l as defineConfig, m as Theme, n as UserConfigExport, nt as WeappViteConfig, o as UserConfigFnObject, p as Sitemap, r as UserConfigFn, s as UserConfigFnObjectPlain, t as UserConfig, u as App, v as defineSitemapJson, w as ComputedDefinitions, y as defineThemeJson, z as ViteDevServer, zn as isWeappViteHost } from "./config-CIof1TIl.mjs";
2
2
  import { a as createWevuComponent, i as WevuComponentOptions, n as defineProps, r as setPageLayout, t as defineEmits } from "./runtime-DSLk7kWi.mjs";
3
3
 
4
4
  //#region src/createContext.d.ts
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { a as defineThemeJson, i as defineSitemapJson, n as defineComponentJson, r as definePageJson, t as defineAppJson } from "./json-D0HkutE0.mjs";
2
2
  import { a as resolveWeappViteHostMeta, i as isWeappViteHost, n as applyWeappViteHostMeta, r as createWeappViteHostMeta, t as WEAPP_VITE_HOST_NAME } from "./pluginHost-SJdl15d3.mjs";
3
3
  import { t as defineConfig } from "./config-DJjSbpNX.mjs";
4
- import { t as createCompilerContext } from "./createContext-CaCrpsG-.mjs";
4
+ import { t as createCompilerContext } from "./createContext-Cwf_Dx0p.mjs";
5
5
  import { i as createWevuComponent, n as defineProps, r as setPageLayout, t as defineEmits } from "./runtime-DN3lxU9s.mjs";
6
6
  export { WEAPP_VITE_HOST_NAME, applyWeappViteHostMeta, createCompilerContext, createWeappViteHostMeta, createWevuComponent, defineAppJson, defineComponentJson, defineConfig, defineEmits, definePageJson, defineProps, defineSitemapJson, defineThemeJson, isWeappViteHost, resolveWeappViteHostMeta, setPageLayout };
package/dist/json.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as definePageJson, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, m as Theme, p as Sitemap, u as App, v as defineSitemapJson, y as defineThemeJson } from "./config-BEJTp6sp.mjs";
1
+ import { _ as definePageJson, d as Component, f as Page, g as defineComponentJson, h as defineAppJson, m as Theme, p as Sitemap, u as App, v as defineSitemapJson, y as defineThemeJson } from "./config-CIof1TIl.mjs";
2
2
  export { App, Component, Page, Sitemap, Theme, defineAppJson, defineComponentJson, definePageJson, defineSitemapJson, defineThemeJson };
package/dist/mcp.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { xt as WeappMcpConfig } from "./config-BEJTp6sp.mjs";
1
+ import { xt as WeappMcpConfig } from "./config-CIof1TIl.mjs";
2
2
  import { CreateServerOptions, DEFAULT_MCP_ENDPOINT, DEFAULT_MCP_HOST, DEFAULT_MCP_PORT, McpServerHandle, StartMcpServerOptions, createWeappViteMcpServer } from "@weapp-vite/mcp";
3
3
 
4
4
  //#region src/mcp.d.ts
package/dist/types.d.mts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { c as Resolver } from "./index-6QUk3Zbc.mjs";
2
2
  import { n as AutoRoutesSubPackage, t as AutoRoutes } from "./routes-DiEBrMtj.mjs";
3
- import { $ as WeappDebugConfig, $t as JsonConfig, A as Ref, An as WeappManagedServerTsconfigConfig, At as WeappWevuConfig, B as BindingErrorLike, Bt as GenerateExtensionsOptions, Cn as WeappLibDtsOptions, Ct as WeappRequestRuntimeConfig, D as MethodDefinitions, Dn as WeappLibVueTscOptions, Dt as WeappVueConfig, E as InlineConfig, En as WeappLibInternalDtsOptions, Et as WeappSubPackageConfig, F as RolldownPlugin, Fn as WeappViteHostMeta, Ft as BuildNpmPackageMeta, G as EntryJsonFragment, Gt as GenerateTemplateContext, H as BaseEntry, Ht as GenerateFilenamesOptions, I as RolldownPluginOption, In as WeappViteRuntime, It as ChunksConfig, J as ScanComponentItem, Jt as GenerateTemplateFileSource, K as PageEntry, Kt as GenerateTemplateEntry, L as RolldownWatchOptions, Lt as CopyGlobs, M as RolldownBuild, Mn as WeappManagedTypeScriptConfig, Mt as Alias, N as RolldownOptions, Nn as WeappWebConfig, Nt as AliasOptions, O as Plugin, On as WeappManagedAppTsconfigConfig, Ot as WeappVueTemplateConfig, P as RolldownOutput, Pt as AlipayNpmMode, Q as UserConfig, Qt as JsFormat, R as RolldownWatcher, Rt as CopyOptions, Sn as WeappLibConfig, St as WeappNpmConfig, T as ConfigEnv, Tn as WeappLibFileName, Tt as WeappRouteRules, U as ComponentEntry, Ut as GenerateOptions, V as AppEntry, Vt as GenerateFileType, W as Entry, Wt as GenerateTemplate, X as ProjectConfig, Xt as GenerateTemplateScope, Y as WxmlDep, Yt as GenerateTemplateInlineSource, Z as SubPackageMetaValue, Zt as GenerateTemplatesConfig, _n as SubPackageStyleConfigEntry, _t as WeappInjectRequestGlobalsTarget, an as NpmBuildOptions, at as EnhanceOptions, b as ChangeEvent, bn as SubPackageStyleScope, bt as WeappInjectWebRuntimeGlobalsTarget, cn as NpmPluginPackageConfig, ct as MultiPlatformConfig, dn as ResolvedAlias, dt as WeappAppPreludeMode, en as JsonMergeContext, et as WeappForwardConsoleConfig, fn as SharedChunkDynamicImports, ft as WeappAutoRoutesConfig, gn as SubPackage, gt as WeappInjectRequestGlobalsConfig, hn as SharedChunkStrategy, ht as WeappHmrConfig, in as MpPlatform, it as AutoImportComponentsOption, j as ResolvedConfig, jn as WeappManagedSharedTsconfigConfig, jt as WeappWorkerConfig, k as PluginOption, kn as WeappManagedNodeTsconfigConfig, kt as WeappWebRuntimeConfig, ln as NpmStrategy, lt as ScanWxmlOptions, mn as SharedChunkOverride, mt as WeappAutoRoutesIncludePattern, nn as JsonMergeStage, nt as WeappViteConfig, on as NpmDependencyPattern, ot as EnhanceWxmlOptions, pn as SharedChunkMode, pt as WeappAutoRoutesInclude, q as ComponentsMap, qt as GenerateTemplateFactory, rn as JsonMergeStrategy, rt as AutoImportComponents, sn as NpmMainPackageConfig, st as HandleWxmlOptions, tn as JsonMergeFunction, tt as WeappForwardConsoleLogLevel, un as NpmSubPackageConfig, ut as WeappAppPreludeConfig, vn as SubPackageStyleConfigObject, vt as WeappInjectWeapiConfig, w as ComputedDefinitions, wn as WeappLibEntryContext, wt as WeappRouteRule, x as WeappVitePluginApi, xn as WeappLibComponentJson, xt as WeappMcpConfig, yn as SubPackageStyleEntry, yt as WeappInjectWebRuntimeGlobalsConfig, z as ViteDevServer, zt as GenerateDirsOptions } from "./config-BEJTp6sp.mjs";
3
+ import { $ as WeappDebugConfig, $t as JsonConfig, A as Ref, An as WeappManagedServerTsconfigConfig, At as WeappWevuConfig, B as BindingErrorLike, Bt as GenerateExtensionsOptions, Cn as WeappLibDtsOptions, Ct as WeappRequestRuntimeConfig, D as MethodDefinitions, Dn as WeappLibVueTscOptions, Dt as WeappVueConfig, E as InlineConfig, En as WeappLibInternalDtsOptions, Et as WeappSubPackageConfig, F as RolldownPlugin, Fn as WeappViteHostMeta, Ft as BuildNpmPackageMeta, G as EntryJsonFragment, Gt as GenerateTemplateContext, H as BaseEntry, Ht as GenerateFilenamesOptions, I as RolldownPluginOption, In as WeappViteRuntime, It as ChunksConfig, J as ScanComponentItem, Jt as GenerateTemplateFileSource, K as PageEntry, Kt as GenerateTemplateEntry, L as RolldownWatchOptions, Lt as CopyGlobs, M as RolldownBuild, Mn as WeappManagedTypeScriptConfig, Mt as Alias, N as RolldownOptions, Nn as WeappWebConfig, Nt as AliasOptions, O as Plugin, On as WeappManagedAppTsconfigConfig, Ot as WeappVueTemplateConfig, P as RolldownOutput, Pt as AlipayNpmMode, Q as UserConfig, Qt as JsFormat, R as RolldownWatcher, Rt as CopyOptions, Sn as WeappLibConfig, St as WeappNpmConfig, T as ConfigEnv, Tn as WeappLibFileName, Tt as WeappRouteRules, U as ComponentEntry, Ut as GenerateOptions, V as AppEntry, Vt as GenerateFileType, W as Entry, Wt as GenerateTemplate, X as ProjectConfig, Xt as GenerateTemplateScope, Y as WxmlDep, Yt as GenerateTemplateInlineSource, Z as SubPackageMetaValue, Zt as GenerateTemplatesConfig, _n as SubPackageStyleConfigEntry, _t as WeappInjectRequestGlobalsTarget, an as NpmBuildOptions, at as EnhanceOptions, b as ChangeEvent, bn as SubPackageStyleScope, bt as WeappInjectWebRuntimeGlobalsTarget, cn as NpmPluginPackageConfig, ct as MultiPlatformConfig, dn as ResolvedAlias, dt as WeappAppPreludeMode, en as JsonMergeContext, et as WeappForwardConsoleConfig, fn as SharedChunkDynamicImports, ft as WeappAutoRoutesConfig, gn as SubPackage, gt as WeappInjectRequestGlobalsConfig, hn as SharedChunkStrategy, ht as WeappHmrConfig, in as MpPlatform, it as AutoImportComponentsOption, j as ResolvedConfig, jn as WeappManagedSharedTsconfigConfig, jt as WeappWorkerConfig, k as PluginOption, kn as WeappManagedNodeTsconfigConfig, kt as WeappWebRuntimeConfig, ln as NpmStrategy, lt as ScanWxmlOptions, mn as SharedChunkOverride, mt as WeappAutoRoutesIncludePattern, nn as JsonMergeStage, nt as WeappViteConfig, on as NpmDependencyPattern, ot as EnhanceWxmlOptions, pn as SharedChunkMode, pt as WeappAutoRoutesInclude, q as ComponentsMap, qt as GenerateTemplateFactory, rn as JsonMergeStrategy, rt as AutoImportComponents, sn as NpmMainPackageConfig, st as HandleWxmlOptions, tn as JsonMergeFunction, tt as WeappForwardConsoleLogLevel, un as NpmSubPackageConfig, ut as WeappAppPreludeConfig, vn as SubPackageStyleConfigObject, vt as WeappInjectWeapiConfig, w as ComputedDefinitions, wn as WeappLibEntryContext, wt as WeappRouteRule, x as WeappVitePluginApi, xn as WeappLibComponentJson, xt as WeappMcpConfig, yn as SubPackageStyleEntry, yt as WeappInjectWebRuntimeGlobalsConfig, z as ViteDevServer, zt as GenerateDirsOptions } from "./config-CIof1TIl.mjs";
4
4
  export { Alias, AliasOptions, AlipayNpmMode, AppEntry, AutoImportComponents, AutoImportComponentsOption, AutoRoutes, AutoRoutesSubPackage, BaseEntry, BindingErrorLike, BuildNpmPackageMeta, ChangeEvent, ChunksConfig, ComponentEntry, ComponentsMap, ComputedDefinitions, ConfigEnv, CopyGlobs, CopyOptions, EnhanceOptions, EnhanceWxmlOptions, Entry, EntryJsonFragment, GenerateDirsOptions, GenerateExtensionsOptions, GenerateFileType, GenerateFilenamesOptions, GenerateOptions, GenerateTemplate, GenerateTemplateContext, GenerateTemplateEntry, GenerateTemplateFactory, GenerateTemplateFileSource, GenerateTemplateInlineSource, GenerateTemplateScope, GenerateTemplatesConfig, HandleWxmlOptions, InlineConfig, JsFormat, JsonConfig, JsonMergeContext, JsonMergeFunction, JsonMergeStage, JsonMergeStrategy, MethodDefinitions, MpPlatform, MultiPlatformConfig, NpmBuildOptions, NpmDependencyPattern, NpmMainPackageConfig, NpmPluginPackageConfig, NpmStrategy, NpmSubPackageConfig, PageEntry, Plugin, PluginOption, ProjectConfig, Ref, ResolvedAlias, ResolvedConfig, Resolver, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatchOptions, RolldownWatcher, ScanComponentItem, ScanWxmlOptions, SharedChunkDynamicImports, SharedChunkMode, SharedChunkOverride, SharedChunkStrategy, SubPackage, SubPackageMetaValue, SubPackageStyleConfigEntry, SubPackageStyleConfigObject, SubPackageStyleEntry, SubPackageStyleScope, UserConfig, ViteDevServer, WeappAppPreludeConfig, WeappAppPreludeMode, WeappAutoRoutesConfig, WeappAutoRoutesInclude, WeappAutoRoutesIncludePattern, WeappDebugConfig, WeappForwardConsoleConfig, WeappForwardConsoleLogLevel, WeappHmrConfig, WeappInjectRequestGlobalsConfig, WeappInjectRequestGlobalsTarget, WeappInjectWeapiConfig, WeappInjectWebRuntimeGlobalsConfig, WeappInjectWebRuntimeGlobalsTarget, WeappLibComponentJson, WeappLibConfig, WeappLibDtsOptions, WeappLibEntryContext, WeappLibFileName, WeappLibInternalDtsOptions, WeappLibVueTscOptions, WeappManagedAppTsconfigConfig, WeappManagedNodeTsconfigConfig, WeappManagedServerTsconfigConfig, WeappManagedSharedTsconfigConfig, WeappManagedTypeScriptConfig, WeappMcpConfig, WeappNpmConfig, WeappRequestRuntimeConfig, WeappRouteRule, WeappRouteRules, WeappSubPackageConfig, WeappViteConfig, WeappViteHostMeta, WeappVitePluginApi, WeappViteRuntime, WeappVueConfig, WeappVueTemplateConfig, WeappWebConfig, WeappWebRuntimeConfig, WeappWevuConfig, WeappWorkerConfig, WxmlDep };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "weapp-vite",
3
3
  "type": "module",
4
- "version": "6.15.17",
4
+ "version": "6.15.18",
5
5
  "description": "weapp-vite 一个现代化的小程序打包工具",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -104,11 +104,11 @@
104
104
  "lru-cache": "^11.3.5",
105
105
  "magic-string": "^0.30.21",
106
106
  "merge": "^2.1.1",
107
- "p-queue": "^9.1.2",
107
+ "p-queue": "^9.2.0",
108
108
  "package-manager-detector": "^1.6.0",
109
109
  "pathe": "^2.0.3",
110
110
  "picomatch": "^4.0.4",
111
- "postcss": "^8.5.10",
111
+ "postcss": "^8.5.12",
112
112
  "rolldown": "1.0.0-rc.17",
113
113
  "rolldown-plugin-dts": "0.23.2",
114
114
  "semver": "^7.7.4",
@@ -117,12 +117,12 @@
117
117
  "vite-tsconfig-paths": "^6.1.1",
118
118
  "vue": "^3.5.33",
119
119
  "vue-tsc": "^3.2.7",
120
- "@weapp-core/constants": "^0.1.3",
120
+ "@weapp-core/constants": "^0.1.4",
121
121
  "@weapp-core/init": "6.0.8",
122
122
  "@weapp-core/logger": "3.1.1",
123
123
  "@weapp-core/schematics": "6.0.4",
124
124
  "@weapp-core/shared": "3.0.4",
125
- "@weapp-vite/ast": "6.15.17",
125
+ "@weapp-vite/ast": "6.15.18",
126
126
  "@weapp-vite/mcp": "1.2.1",
127
127
  "@weapp-vite/miniprogram-automator": "1.0.4",
128
128
  "@weapp-vite/volar": "2.1.0",
@@ -132,14 +132,14 @@
132
132
  "rolldown-require": "2.0.15",
133
133
  "vite-plugin-performance": "2.0.1",
134
134
  "weapp-ide-cli": "5.2.6",
135
- "wevu": "6.15.17"
135
+ "wevu": "6.15.18"
136
136
  },
137
137
  "publishConfig": {
138
138
  "access": "public",
139
139
  "registry": "https://registry.npmjs.org"
140
140
  },
141
141
  "devDependencies": {
142
- "oxc-parser": "^0.127.0",
142
+ "oxc-parser": "^0.128.0",
143
143
  "oxc-walker": "^0.7.0",
144
144
  "tailwindcss": "^4.2.4",
145
145
  "ts-morph": "^28.0.0"
@@ -1,2 +0,0 @@
1
- import { t as extractConfigFromVue } from "./file-DUPlM0cH.mjs";
2
- export { extractConfigFromVue };
@@ -1,2 +0,0 @@
1
- import { i as getCompilerContext } from "./createContext-CaCrpsG-.mjs";
2
- export { getCompilerContext };