weapp-tailwindcss 5.1.12 → 5.1.14
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/bundlers/vite/css-finalizer.d.ts +1 -0
- package/dist/bundlers/vite/frameworks/taro/index.d.ts +2 -0
- package/dist/bundlers/vite/frameworks/uni-app/index.d.ts +2 -0
- package/dist/bundlers/vite/frameworks/uni-app-x/index.d.ts +2 -0
- package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +3 -0
- package/dist/bundlers/vite/generate-bundle/root-style-output.d.ts +18 -0
- package/dist/bundlers/vite/generate-bundle/types.d.ts +2 -0
- package/dist/bundlers/vite/serve-root-import-shell.d.ts +8 -0
- package/dist/bundlers/vite/source-candidates.d.ts +3 -0
- package/dist/{context-xSJE588m.mjs → context-BL8Gy71H.mjs} +5 -3
- package/dist/{context-DRRgW7i2.js → context-VeFq_8vW.js} +5 -3
- package/dist/core.js +1 -1
- package/dist/core.mjs +1 -1
- package/dist/{generator-BvPcmqxU.mjs → generator-B59OA64h.mjs} +17 -3
- package/dist/{generator-CS10c9g1.js → generator-CEnUsjed.js} +17 -3
- package/dist/generator.js +1 -1
- package/dist/generator.mjs +1 -1
- package/dist/{gulp-DNZZvUMq.js → gulp-C1Q3LRzg.js} +9 -5
- package/dist/{gulp-BEOzXrbp.mjs → gulp-DUYWxmZC.mjs} +9 -5
- package/dist/gulp.js +1 -1
- package/dist/gulp.mjs +1 -1
- package/dist/{hmr-timing-DW1g3zjl.js → hmr-timing-BZ5sWIqO.js} +104 -14
- package/dist/{hmr-timing-hRhRAjYV.mjs → hmr-timing-C3ed5vCx.mjs} +105 -15
- package/dist/index.js +4 -4
- package/dist/index.mjs +4 -4
- package/dist/postcss.js +1 -1
- package/dist/postcss.mjs +1 -1
- package/dist/presets.js +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/rspack.js +1 -1
- package/dist/rspack.mjs +1 -1
- package/dist/{source-candidate-scan-signature-t4XKAQ04.mjs → source-candidate-scan-signature-D7RWjWsY.mjs} +17 -44
- package/dist/{source-candidate-scan-signature-CMgu5bJk.js → source-candidate-scan-signature-R3dzamcm.js} +17 -44
- package/dist/tailwindcss/candidates.d.ts +4 -0
- package/dist/{tailwindcss-DZT_pWrd.mjs → tailwindcss-DPcKMLxL.mjs} +1 -1
- package/dist/{tailwindcss-z9JMF-qU.js → tailwindcss-KBYPJ2DW.js} +1 -1
- package/dist/{vite-VGfkFQkC.js → vite-BNlPdsGM.js} +272 -59
- package/dist/{vite-DF1gE6a5.mjs → vite-CBU5NXTX.mjs} +272 -59
- package/dist/vite.js +1 -1
- package/dist/vite.mjs +1 -1
- package/dist/weapp-tw-css-import-rewrite-loader.js +2061 -15
- package/dist/{webpack-CTYm19zA.mjs → webpack-CZ38fMGC.mjs} +10 -6
- package/dist/{webpack-CzXjfvYS.js → webpack-Jpe048pQ.js} +10 -6
- package/dist/webpack.js +1 -1
- package/dist/webpack.mjs +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { resolveImplicitAppTypeFromViteRoot } from "./framework.mjs";
|
|
2
|
-
import { At as resolveTailwindV4CssSourceBase, E as resolveTailwindcssOptions, J as hasTailwindApplyDirective, K as stripMiniProgramCssSpecificityPlaceholders, N as normalizeEmptyTailwindCustomVariants, Nt as filterUnsupportedMiniProgramTailwindV4Candidates, Q as normalizeTailwindConfigDirectives, U as hasMiniProgramCssSpecificityPlaceholders, X as hasTailwindRootDirectives, Y as hasTailwindNonRootGenerationDirectives, Z as hasTailwindSourceDirectives, a as resolveGeneratorRuntimeBranch, b as normalizeCssEntries, c as shouldUseNativeAppCssBranch, ct as hasTailwindGeneratedCssMarkers, et as normalizeTailwindSourceForGenerator, ft as stripGeneratorPlaceholderMarkers, g as upsertTailwindV4CssSource, h as hasConfiguredTailwindV4CssRoots, i as normalizeWeappTailwindcssGeneratorOptions, j as hasUserCssLayerBlocks, l as resolveUniUtsPlatform, m as filterTailwindV4CssSourceRoots, nt as removeTailwindSourceDirectives, q as hasLocalCssImport, s as shouldUseMiniProgramCssBranch, tt as parseImportRequest, vt as getTailwindV4IncrementalGenerateCacheStats, x as findNearestPackageRoot, y as isTailwindV4CssEntry } from "./generator-
|
|
2
|
+
import { At as resolveTailwindV4CssSourceBase, E as resolveTailwindcssOptions, J as hasTailwindApplyDirective, K as stripMiniProgramCssSpecificityPlaceholders, N as normalizeEmptyTailwindCustomVariants, Nt as filterUnsupportedMiniProgramTailwindV4Candidates, Q as normalizeTailwindConfigDirectives, R as splitUserCssLayerBlocks, U as hasMiniProgramCssSpecificityPlaceholders, X as hasTailwindRootDirectives, Y as hasTailwindNonRootGenerationDirectives, Z as hasTailwindSourceDirectives, a as resolveGeneratorRuntimeBranch, b as normalizeCssEntries, c as shouldUseNativeAppCssBranch, ct as hasTailwindGeneratedCssMarkers, et as normalizeTailwindSourceForGenerator, ft as stripGeneratorPlaceholderMarkers, g as upsertTailwindV4CssSource, h as hasConfiguredTailwindV4CssRoots, i as normalizeWeappTailwindcssGeneratorOptions, j as hasUserCssLayerBlocks, l as resolveUniUtsPlatform, m as filterTailwindV4CssSourceRoots, nt as removeTailwindSourceDirectives, q as hasLocalCssImport, s as shouldUseMiniProgramCssBranch, tt as parseImportRequest, vt as getTailwindV4IncrementalGenerateCacheStats, x as findNearestPackageRoot, y as isTailwindV4CssEntry } from "./generator-B59OA64h.mjs";
|
|
3
3
|
import { t as omitUndefined } from "./object-BJSWl-E5.mjs";
|
|
4
|
-
import { _ as resolveViteTailwindV4CssDependencies, a as findTailwindConfig, f as createViteSourceScanMatcher, g as resolveTailwindV4EntriesFromCssCached, i as resolveUniAppXOptions, l as getRuntimeClassSetSignature, m as discoverTailwindV4CssEntries, p as resolveViteSourceScanEntries, r as isUniAppXEnabled } from "./tailwindcss-
|
|
4
|
+
import { _ as resolveViteTailwindV4CssDependencies, a as findTailwindConfig, f as createViteSourceScanMatcher, g as resolveTailwindV4EntriesFromCssCached, i as resolveUniAppXOptions, l as getRuntimeClassSetSignature, m as discoverTailwindV4CssEntries, p as resolveViteSourceScanEntries, r as isUniAppXEnabled } from "./tailwindcss-DPcKMLxL.mjs";
|
|
5
5
|
import "./utils-MVwpU07P.mjs";
|
|
6
6
|
import { g as replaceWxml, y as createDebug } from "./wxml-DdGdeqaH.mjs";
|
|
7
|
-
import { a as vitePluginName, c as collectRuntimeClassSet, d as refreshTailwindRuntimeState, f as normalizeFrameworkStylePlatform, l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, s as toCustomAttributesEntities, t as getCompilerContext } from "./context-
|
|
8
|
-
import { A as processCachedTask, D as createCssSourceTraceCacheSignature, E as annotateCssSourceTrace, O as createCssTokenSourceMap, S as scoreTailwindV4CssSourceFileMatch, _ as normalizeMiniProgramGeneratorCssSource, a as isSourceCandidateRequest, d as validateCandidatesByGenerator, g as mergeMarkedUserLayerComponentsCss, h as extractMarkedUserLayerComponentsCss, m as runWithConcurrency, r as createSourceCandidateCollector, s as createBundleRuntimeClassSetManager, t as createHmrTimingRecorder, v as normalizeMiniProgramImportShell, y as isPureLocalCssImportWrapper } from "./hmr-timing-
|
|
9
|
-
import { A as createBundlerGeneratedCssMarker, B as resolveViteFrameworkProfile, C as createBundleModuleGraphOptions, D as normalizeOutputPathKey, E as stripRequestQuery, F as resolvePluginDisabledState, I as createBuiltinViteStyleInjectorPlugins, M as parseBundlerGeneratedCssMarkerBlocks, N as stripBundlerGeneratedCssMarkers, P as resolvePackageDir, R as viteStyleInjectorDelegates, S as applyLinkedResults, T as isSourceStyleRequest, _ as isCSSRequest, a as createCandidateSignature, b as slash, c as getSnapshotHash, d as buildBundleSnapshot, g as formatPostcssSourceMap, h as cleanUrl, i as createScopedGeneratorSourceTraceMap, j as hasBundlerGeneratedCssMarker, k as toAbsoluteOutputPath, l as hasRuntimeAffectingSourceChanges, m as updateBundleBuildState, n as createScopedGeneratorCandidateSignature, o as createJsHashSalt, p as createBundleBuildState, r as createScopedGeneratorRuntime, s as createLinkedImpactSignature, t as createSourceCandidateScanSignature, u as summarizeStringDiff, v as isHTMLRequest, w as generateTailwindV4Css, x as createRuntimeAffectingSourceSignature, y as normalizePath } from "./source-candidate-scan-signature-
|
|
7
|
+
import { a as vitePluginName, c as collectRuntimeClassSet, d as refreshTailwindRuntimeState, f as normalizeFrameworkStylePlatform, l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, s as toCustomAttributesEntities, t as getCompilerContext } from "./context-BL8Gy71H.mjs";
|
|
8
|
+
import { A as processCachedTask, D as createCssSourceTraceCacheSignature, E as annotateCssSourceTrace, O as createCssTokenSourceMap, S as scoreTailwindV4CssSourceFileMatch, _ as normalizeMiniProgramGeneratorCssSource, a as isSourceCandidateRequest, d as validateCandidatesByGenerator, g as mergeMarkedUserLayerComponentsCss, h as extractMarkedUserLayerComponentsCss, m as runWithConcurrency, r as createSourceCandidateCollector, s as createBundleRuntimeClassSetManager, t as createHmrTimingRecorder, v as normalizeMiniProgramImportShell, y as isPureLocalCssImportWrapper } from "./hmr-timing-C3ed5vCx.mjs";
|
|
9
|
+
import { A as createBundlerGeneratedCssMarker, B as resolveViteFrameworkProfile, C as createBundleModuleGraphOptions, D as normalizeOutputPathKey, E as stripRequestQuery, F as resolvePluginDisabledState, I as createBuiltinViteStyleInjectorPlugins, M as parseBundlerGeneratedCssMarkerBlocks, N as stripBundlerGeneratedCssMarkers, P as resolvePackageDir, R as viteStyleInjectorDelegates, S as applyLinkedResults, T as isSourceStyleRequest, _ as isCSSRequest, a as createCandidateSignature, b as slash, c as getSnapshotHash, d as buildBundleSnapshot, g as formatPostcssSourceMap, h as cleanUrl, i as createScopedGeneratorSourceTraceMap, j as hasBundlerGeneratedCssMarker, k as toAbsoluteOutputPath, l as hasRuntimeAffectingSourceChanges, m as updateBundleBuildState, n as createScopedGeneratorCandidateSignature, o as createJsHashSalt, p as createBundleBuildState, r as createScopedGeneratorRuntime, s as createLinkedImpactSignature, t as createSourceCandidateScanSignature, u as summarizeStringDiff, v as isHTMLRequest, w as generateTailwindV4Css, x as createRuntimeAffectingSourceSignature, y as normalizePath } from "./source-candidate-scan-signature-D7RWjWsY.mjs";
|
|
10
10
|
import { t as logger$1 } from "./logger-BNzxZbZj.mjs";
|
|
11
11
|
import fs, { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
12
12
|
import path from "node:path";
|
|
@@ -899,6 +899,21 @@ function createRelativeCssImportRequest$1(targetFile, importedFile) {
|
|
|
899
899
|
function createCssImportShell$1(targetFile, importedFile) {
|
|
900
900
|
return `@import "${createRelativeCssImportRequest$1(targetFile, importedFile)}";\n`;
|
|
901
901
|
}
|
|
902
|
+
function resolveSingleCssImportOutputFile(targetFile, css) {
|
|
903
|
+
let importedFile;
|
|
904
|
+
try {
|
|
905
|
+
postcss.parse(css).walkAtRules("import", (atRule) => {
|
|
906
|
+
if (importedFile !== void 0) return;
|
|
907
|
+
const request = parseImportRequest(atRule.params);
|
|
908
|
+
if (!request || /^(?:https?:)?\/\//i.test(request) || request.startsWith("data:")) return;
|
|
909
|
+
const cleanRequest = request.replace(/[?#].*$/, "");
|
|
910
|
+
if (!/\.(?:css|wxss|acss|ttss|qss|jxss|tyss)$/i.test(cleanRequest)) return;
|
|
911
|
+
const targetDir = path.posix.dirname(normalizeOutputPathKey(targetFile));
|
|
912
|
+
importedFile = normalizeOutputPathKey(path.posix.join(targetDir === "." ? "" : targetDir, cleanRequest));
|
|
913
|
+
});
|
|
914
|
+
} catch {}
|
|
915
|
+
return importedFile;
|
|
916
|
+
}
|
|
902
917
|
function createRootMiniProgramOriginStyleOutputFile(file) {
|
|
903
918
|
const normalized = normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
|
|
904
919
|
if (/(?:^|\/)[^/]+-origin\.[^.]+$/i.test(normalized)) return normalized;
|
|
@@ -907,6 +922,28 @@ function createRootMiniProgramOriginStyleOutputFile(file) {
|
|
|
907
922
|
function shouldKeepRootMiniProgramStyleAsImportShell(enabled) {
|
|
908
923
|
return enabled === true;
|
|
909
924
|
}
|
|
925
|
+
function shouldPreserveFrameworkRootMiniProgramImportShell(options) {
|
|
926
|
+
return !options.isWebGeneratorTarget && options.matchesCss && isRootMiniProgramStyleOutputFile$1(options.file) && isPureLocalCssImportWrapper(options.css) && shouldKeepRootMiniProgramStyleAsImportShell(options.shouldKeep());
|
|
927
|
+
}
|
|
928
|
+
function restoreFrameworkRootMiniProgramImportShellAssets(bundle, options) {
|
|
929
|
+
if (options.isWebGeneratorTarget || options.targetByFile.size === 0) return 0;
|
|
930
|
+
let restored = 0;
|
|
931
|
+
for (const [sourceFile, targetFile] of options.targetByFile) {
|
|
932
|
+
if (!options.matchesCss(sourceFile) || !options.matchesCss(targetFile) || !isRootMiniProgramStyleOutputFile$1(sourceFile) || !isRootMiniProgramStyleOutputFile$1(targetFile) || normalizeOutputPathKey(sourceFile) === normalizeOutputPathKey(targetFile)) continue;
|
|
933
|
+
const output = Object.entries(bundle).find(([bundleFile, candidate]) => candidate.type === "asset" && normalizeOutputPathKey(candidate.fileName || bundleFile) === normalizeOutputPathKey(sourceFile))?.[1];
|
|
934
|
+
if (output?.type !== "asset") continue;
|
|
935
|
+
const rawSource = output.source.toString();
|
|
936
|
+
if (!shouldKeepRootMiniProgramStyleAsImportShell(options.shouldKeep(sourceFile, rawSource))) continue;
|
|
937
|
+
const nextSource = createCssImportShell$1(sourceFile, targetFile);
|
|
938
|
+
if (rawSource === nextSource) continue;
|
|
939
|
+
output.source = nextSource;
|
|
940
|
+
options.recordCssAssetResult?.(sourceFile, nextSource);
|
|
941
|
+
options.onUpdate?.(sourceFile, rawSource, nextSource);
|
|
942
|
+
options.debug?.("restore framework root css import shell: %s -> %s", sourceFile, targetFile);
|
|
943
|
+
restored++;
|
|
944
|
+
}
|
|
945
|
+
return restored;
|
|
946
|
+
}
|
|
910
947
|
function shouldMoveRootMiniProgramStyleToImportShellOrigin(enabled) {
|
|
911
948
|
return enabled === true;
|
|
912
949
|
}
|
|
@@ -2257,11 +2294,17 @@ function isMiniProgramStyleOutputFile(file) {
|
|
|
2257
2294
|
}
|
|
2258
2295
|
function shouldPreserveMiniProgramImportShell(options, bundle, file, css) {
|
|
2259
2296
|
const context = createCssAssetPipelineContext(options, file, bundle);
|
|
2260
|
-
return context !== void 0 &&
|
|
2261
|
-
...context,
|
|
2297
|
+
return context !== void 0 && shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
2262
2298
|
css,
|
|
2263
|
-
file
|
|
2264
|
-
|
|
2299
|
+
file,
|
|
2300
|
+
isWebGeneratorTarget: context.currentGeneratorBranch?.isWeb === true,
|
|
2301
|
+
matchesCss: options.opts.cssMatcher(file),
|
|
2302
|
+
shouldKeep: () => options.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
2303
|
+
...context,
|
|
2304
|
+
css,
|
|
2305
|
+
file
|
|
2306
|
+
})
|
|
2307
|
+
});
|
|
2265
2308
|
}
|
|
2266
2309
|
function resolvePreservedImportShellInjectionTarget(options, bundle, file, css) {
|
|
2267
2310
|
const context = createCssAssetPipelineContext(options, file, bundle);
|
|
@@ -3031,21 +3074,6 @@ function resolveRootMiniProgramOriginStyleFile(file) {
|
|
|
3031
3074
|
if (/(?:^|\/)[^/]+-origin\.[^.]+$/i.test(normalized)) return;
|
|
3032
3075
|
return normalized.replace(/(\.[^.]+)$/, "-origin$1");
|
|
3033
3076
|
}
|
|
3034
|
-
function resolveSingleCssImportOutputFile(targetFile, css) {
|
|
3035
|
-
let importedFile;
|
|
3036
|
-
try {
|
|
3037
|
-
postcss.parse(css).walkAtRules("import", (atRule) => {
|
|
3038
|
-
if (importedFile !== void 0) return;
|
|
3039
|
-
const request = parseImportRequest(atRule.params);
|
|
3040
|
-
if (!request || /^(?:https?:)?\/\//i.test(request) || request.startsWith("data:")) return;
|
|
3041
|
-
const cleanRequest = request.replace(/[?#].*$/, "");
|
|
3042
|
-
if (!/\.(?:css|wxss|acss|ttss|qss|jxss|tyss)$/i.test(cleanRequest)) return;
|
|
3043
|
-
const targetDir = path.posix.dirname(normalizeOutputPathKey(targetFile));
|
|
3044
|
-
importedFile = normalizeOutputPathKey(path.posix.join(targetDir === "." ? "" : targetDir, cleanRequest));
|
|
3045
|
-
});
|
|
3046
|
-
} catch {}
|
|
3047
|
-
return importedFile;
|
|
3048
|
-
}
|
|
3049
3077
|
function normalizeRootMiniProgramImportShellAssets(bundle, options) {
|
|
3050
3078
|
if (!options.enabled) return 0;
|
|
3051
3079
|
let updated = 0;
|
|
@@ -3919,7 +3947,7 @@ function collectRememberedCssReplayGroups(sources, opts, rootDir, isWebGenerator
|
|
|
3919
3947
|
//#endregion
|
|
3920
3948
|
//#region src/bundlers/vite/generate-bundle/remembered-css-replay.ts
|
|
3921
3949
|
async function processRememberedCssReplay(options) {
|
|
3922
|
-
const { addWatchFile, activeViteCssCacheFiles, bundleFiles, cache, changedCssFiles = /* @__PURE__ */ new Set(), createScopedGeneratorRuntime, createScopedSourceCandidateGetter, createScopedSourceCandidateSourceGetter, cssTaskFactories, debug, defaultStyleOutputExtension, emitOrReplayCssAsset, generatorRuntime, generatorPlatform, getCssHandlerOptions, getCssUserHandlerOptions, getRememberedCssSignature, getRememberedCssSources, isNativeAppStyleTarget, isWebGeneratorTarget, lastCssRawSourceHashByFile = /* @__PURE__ */ new Map(), lastCssResultByFile, lastCssSourceHashByFile, markCssAssetProcessed, metrics, normalizeViteCssCacheKey, onUpdate, opts, recordCssAssetResult, recordViteProcessedCssAssetResult, refreshRememberedCssSource, rootDir, runtimeState, setRememberedCssSignature, shouldInjectCssIntoMainFromOutput, shouldPreserveAppCssExtension, sourceRoot, styleHandler, timeTask, useIncrementalMode } = options;
|
|
3950
|
+
const { addWatchFile, activeViteCssCacheFiles, bundleFiles, cache, changedCssFiles = /* @__PURE__ */ new Set(), createScopedGeneratorRuntime, createScopedSourceCandidateGetter, createScopedSourceCandidateSourceGetter, cssTaskFactories, cssPipelineContext, cssPipelineStrategy, debug, defaultStyleOutputExtension, emitOrReplayCssAsset, generatorRuntime, generatorPlatform, getCssHandlerOptions, getCssUserHandlerOptions, getRememberedCssSignature, getRememberedCssSources, isNativeAppStyleTarget, isWebGeneratorTarget, lastCssRawSourceHashByFile = /* @__PURE__ */ new Map(), lastCssResultByFile, lastCssSourceHashByFile, markCssAssetProcessed, metrics, normalizeViteCssCacheKey, onUpdate, opts, recordCssAssetResult, recordViteProcessedCssAssetResult, refreshRememberedCssSource, rootDir, runtimeState, setRememberedCssSignature, shouldInjectCssIntoMainFromOutput, shouldPreserveAppCssExtension, sourceRoot, styleHandler, timeTask, useIncrementalMode } = options;
|
|
3923
3951
|
const rememberedReplayGroups = collectRememberedCssReplayGroups(getRememberedCssSources?.(), opts, rootDir, isWebGeneratorTarget, shouldPreserveAppCssExtension, sourceRoot, defaultStyleOutputExtension, bundleFiles);
|
|
3924
3952
|
for (const [outputFile, rememberedGroup] of rememberedReplayGroups) {
|
|
3925
3953
|
if (isHTMLRequest(outputFile) || options.opts.htmlMatcher(outputFile)) continue;
|
|
@@ -3963,7 +3991,17 @@ async function processRememberedCssReplay(options) {
|
|
|
3963
3991
|
const shouldRecordRememberedReplayCss = useIncrementalMode || isNativeAppStyleTarget;
|
|
3964
3992
|
const shouldEmitRememberedReplayCssAsset = shouldRecordRememberedReplayCss;
|
|
3965
3993
|
if (!shouldRecordRememberedReplayCss) continue;
|
|
3966
|
-
if (
|
|
3994
|
+
if (shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
3995
|
+
css: rawSource,
|
|
3996
|
+
file: outputFile,
|
|
3997
|
+
isWebGeneratorTarget,
|
|
3998
|
+
matchesCss: opts.cssMatcher(outputFile),
|
|
3999
|
+
shouldKeep: () => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
4000
|
+
...cssPipelineContext,
|
|
4001
|
+
css: rawSource,
|
|
4002
|
+
file: outputFile
|
|
4003
|
+
})
|
|
4004
|
+
}) || !isRootMiniProgramStyleOutputFile$1(outputFile) && !isWebGeneratorTarget && isPureLocalCssImportWrapper(rawSource)) {
|
|
3967
4005
|
cssTaskFactories.push(() => timeTask("css.replay", async () => {
|
|
3968
4006
|
const start = performance.now();
|
|
3969
4007
|
const css = annotateCss(normalizeMiniProgramImportShell(rawSource));
|
|
@@ -4674,6 +4712,7 @@ function createGenerateBundleHook(context) {
|
|
|
4674
4712
|
const lastCssResultByFile = /* @__PURE__ */ new Map();
|
|
4675
4713
|
const lastCssSourceHashByFile = /* @__PURE__ */ new Map();
|
|
4676
4714
|
const lastCssRawSourceHashByFile = /* @__PURE__ */ new Map();
|
|
4715
|
+
const frameworkRootImportShellTargetByFile = context.frameworkRootImportShellTargetByFile ?? /* @__PURE__ */ new Map();
|
|
4677
4716
|
let currentOutDir;
|
|
4678
4717
|
let currentSubpackageRoots;
|
|
4679
4718
|
const createInitialCssPipelineContext = (file) => {
|
|
@@ -4712,7 +4751,7 @@ function createGenerateBundleHook(context) {
|
|
|
4712
4751
|
});
|
|
4713
4752
|
return async function generateBundle(_opt, bundle) {
|
|
4714
4753
|
const addWatchFile = (id) => this.addWatchFile?.(id);
|
|
4715
|
-
const { opts, runtimeState, ensureBundleRuntimeClassSet, debug, getResolvedConfig, markCssAssetProcessed, isCssAssetProcessed, isViteProcessedCssAsset, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getViteProcessedCssAssetResult, getSourceCandidates, getSourceCandidateSource, getSourceCandidateSources, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberCssSource, refreshRememberedCssSource, getRememberedCssSources, getRememberedCssSignature, setRememberedCssSignature, getKnownCssSource, getKnownSfcSource, recordGeneratorCandidates, pruneViteCssCaches, getViteCssCacheStats, hmrTimingRecorder } = context;
|
|
4754
|
+
const { opts, runtimeState, ensureBundleRuntimeClassSet, debug, getResolvedConfig, markCssAssetProcessed, isCssAssetProcessed, isViteProcessedCssAsset, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getViteProcessedCssAssetResult, getSourceCandidates, getSourceCandidateSource, getSourceCandidateSources, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberCssSource, refreshRememberedCssSource, getRememberedCssSources, getRememberedCssSignature, setRememberedCssSignature, getKnownCssSource, getKnownSfcSource, getOriginalCssLayerSource, recordGeneratorCandidates, pruneViteCssCaches, getViteCssCacheStats, hmrTimingRecorder } = context;
|
|
4716
4755
|
const getBundlerSfcSource = (sourceFile) => {
|
|
4717
4756
|
const code = this.getModuleInfo?.(sourceFile)?.code;
|
|
4718
4757
|
return typeof code === "string" && hasSfcStyleSources(code) ? code : void 0;
|
|
@@ -4797,16 +4836,38 @@ function createGenerateBundleHook(context) {
|
|
|
4797
4836
|
const envFlags = resolveGenerateBundleEnvFlags();
|
|
4798
4837
|
const bundleFiles = Object.keys(bundle);
|
|
4799
4838
|
const activeViteCssCacheFiles = new Set(bundleFiles.map(normalizeViteCssCacheKey));
|
|
4800
|
-
const
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4839
|
+
const normalizeSystemAliasPathKey = (file) => file.startsWith("/private/var/") ? file.slice(8) : file;
|
|
4840
|
+
const normalizeConfiguredCssSourceCacheKey = (file) => normalizeSystemAliasPathKey(normalizeOutputPathKey(path.resolve(file.replace(/[?#].*$/, ""))));
|
|
4841
|
+
const runtimeTailwindcssOptions = resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions);
|
|
4842
|
+
const tailwindRuntimeOptions = resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
|
|
4843
|
+
const configuredTailwindV4ExplicitCssEntryFiles = [...new Set([
|
|
4844
|
+
...Array.isArray(opts.cssEntries) ? opts.cssEntries : [],
|
|
4845
|
+
...Array.isArray(opts.tailwindcss?.v4?.cssEntries) ? opts.tailwindcss.v4.cssEntries : [],
|
|
4846
|
+
...Array.isArray(runtimeTailwindcssOptions?.v4?.cssEntries) ? runtimeTailwindcssOptions.v4.cssEntries : [],
|
|
4847
|
+
...Array.isArray(tailwindRuntimeOptions?.v4?.cssEntries) ? tailwindRuntimeOptions.v4.cssEntries : []
|
|
4848
|
+
].filter((file) => typeof file === "string" && file.length > 0))];
|
|
4849
|
+
const getConfiguredTailwindV4CssSourceEntries = () => {
|
|
4850
|
+
const collectedEntries = collectConfiguredTailwindV4CssSourceEntries({
|
|
4851
|
+
...opts,
|
|
4852
|
+
tailwindcssRuntimeOptions: {
|
|
4853
|
+
...opts.tailwindcssRuntimeOptions ?? {},
|
|
4854
|
+
tailwindcss: {
|
|
4855
|
+
...resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions) ?? {},
|
|
4856
|
+
...resolveTailwindcssOptions(runtimeState.tailwindRuntime.options) ?? {}
|
|
4857
|
+
}
|
|
4807
4858
|
}
|
|
4808
|
-
}
|
|
4809
|
-
|
|
4859
|
+
}, opts.tailwindcssBasedir ?? rootDir);
|
|
4860
|
+
const cachedEntries = configuredTailwindV4ExplicitCssEntryFiles.flatMap((file) => {
|
|
4861
|
+
const resolvedFile = path.isAbsolute(file) ? path.resolve(file) : path.resolve(opts.tailwindcssBasedir ?? rootDir, file);
|
|
4862
|
+
const source = getCssSource(resolvedFile);
|
|
4863
|
+
return typeof source === "string" && source.length > 0 ? [{
|
|
4864
|
+
file: resolvedFile,
|
|
4865
|
+
source
|
|
4866
|
+
}] : [];
|
|
4867
|
+
});
|
|
4868
|
+
const cachedFileKeys = new Set(cachedEntries.map((entry) => normalizeConfiguredCssSourceCacheKey(entry.file)));
|
|
4869
|
+
return [...cachedEntries, ...collectedEntries.filter((entry) => !cachedFileKeys.has(normalizeConfiguredCssSourceCacheKey(entry.file)))];
|
|
4870
|
+
};
|
|
4810
4871
|
const normalizeGeneratorUserRawSource = (source, sourceFile, fallbackFile) => normalizeRelativeCssConfigDirectives(source, sourceFile || fallbackFile, outDir, opts);
|
|
4811
4872
|
const resolveMatchedCssSourceOutputFile = (sourceFile) => resolveOutputFileFromMatchedCssSource({
|
|
4812
4873
|
bundleFiles,
|
|
@@ -4827,20 +4888,12 @@ function createGenerateBundleHook(context) {
|
|
|
4827
4888
|
const snapshotStart = performance.now();
|
|
4828
4889
|
const snapshot = buildBundleSnapshot(bundle, opts, outDir, state, envFlags.disableDirtyOptimization || !useIncrementalMode, { hasOmittedKnownFiles });
|
|
4829
4890
|
const configuredTailwindV4CssSourceEntriesForScope = getConfiguredTailwindV4CssSourceEntries();
|
|
4830
|
-
const normalizeSystemAliasPathKey = (file) => file.startsWith("/private/var/") ? file.slice(8) : file;
|
|
4831
4891
|
const normalizeConfiguredTailwindV4CssEntryFileKey = (file) => {
|
|
4832
4892
|
const cleanFile = file.replace(/[?#].*$/, "");
|
|
4833
4893
|
return normalizeSystemAliasPathKey(normalizeOutputPathKey(path.isAbsolute(cleanFile) ? path.resolve(cleanFile) : path.resolve(opts.tailwindcssBasedir ?? rootDir, cleanFile)));
|
|
4834
4894
|
};
|
|
4835
|
-
const runtimeTailwindcssOptions = resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions);
|
|
4836
|
-
const tailwindRuntimeOptions = resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
|
|
4837
4895
|
const configuredTailwindV4CssSourceFileKeysForScope = new Set(configuredTailwindV4CssSourceEntriesForScope.map((entry) => normalizeConfiguredTailwindV4CssEntryFileKey(entry.file)));
|
|
4838
|
-
const configuredTailwindV4ExplicitCssEntryFileKeysForScope = new Set(
|
|
4839
|
-
...Array.isArray(opts.cssEntries) ? opts.cssEntries : [],
|
|
4840
|
-
...Array.isArray(opts.tailwindcss?.v4?.cssEntries) ? opts.tailwindcss.v4.cssEntries : [],
|
|
4841
|
-
...Array.isArray(runtimeTailwindcssOptions?.v4?.cssEntries) ? runtimeTailwindcssOptions.v4.cssEntries : [],
|
|
4842
|
-
...Array.isArray(tailwindRuntimeOptions?.v4?.cssEntries) ? tailwindRuntimeOptions.v4.cssEntries : []
|
|
4843
|
-
].filter((file) => typeof file === "string" && file.length > 0).map(normalizeConfiguredTailwindV4CssEntryFileKey));
|
|
4896
|
+
const configuredTailwindV4ExplicitCssEntryFileKeysForScope = new Set(configuredTailwindV4ExplicitCssEntryFiles.map(normalizeConfiguredTailwindV4CssEntryFileKey));
|
|
4844
4897
|
const isRootStyleOutputFile = (file) => {
|
|
4845
4898
|
const normalized = normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
|
|
4846
4899
|
return normalized.endsWith(".css") && !normalized.includes("/");
|
|
@@ -4870,9 +4923,11 @@ function createGenerateBundleHook(context) {
|
|
|
4870
4923
|
const selectConfiguredRootCssSourceEntry = (outputFile, entries, originalFileNames) => {
|
|
4871
4924
|
const matchedOriginalEntry = entries.find((entry) => originalFileNames?.some((originalFile) => normalizeConfiguredTailwindV4CssEntryFileKey(originalFile) === normalizeConfiguredTailwindV4CssEntryFileKey(entry.file)) === true);
|
|
4872
4925
|
if (matchedOriginalEntry && outputFile.replace(/[?#].*$/, "").endsWith(".css")) return matchedOriginalEntry;
|
|
4873
|
-
if (!shouldSelectConfiguredRootCssOutput(outputFile)) return;
|
|
4874
4926
|
const shouldRequireExplicitConfiguredEntry = !cssPipelineContext.currentGeneratorBranch.isWeb && opts.cssMatcher(outputFile) && isRootStyleOutputFile(outputFile);
|
|
4875
4927
|
const generationEntries = entries.filter((entry) => hasTailwindGenerationSource(entry.source) && (!shouldRequireExplicitConfiguredEntry || configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(entry.file))));
|
|
4928
|
+
const matchedOutputEntries = generationEntries.filter((entry) => normalizeOutputPathKey(resolveConfiguredTailwindV4CssEntryOutputFile(entry.file).replace(/[?#].*$/, "")) === normalizeOutputPathKey(outputFile.replace(/[?#].*$/, "")));
|
|
4929
|
+
if (matchedOutputEntries.length === 1) return matchedOutputEntries[0];
|
|
4930
|
+
if (!shouldSelectConfiguredRootCssOutput(outputFile)) return;
|
|
4876
4931
|
if (generationEntries.length <= 1) return generationEntries[0];
|
|
4877
4932
|
const rootOutputEntries = generationEntries.filter((entry) => {
|
|
4878
4933
|
return !normalizeOutputPathKey(resolveConfiguredTailwindV4CssEntryOutputFile(entry.file).replace(/[?#].*$/, "")).includes("/");
|
|
@@ -5146,10 +5201,55 @@ function createGenerateBundleHook(context) {
|
|
|
5146
5201
|
metrics.css.total++;
|
|
5147
5202
|
const assetSourceFile = resolveAssetSourceFile(originalSource, file);
|
|
5148
5203
|
const rawSource = normalizeRelativeCssConfigDirectives(originalEntrySource, assetSourceFile, outDir, opts);
|
|
5204
|
+
const currentRawSourceHasExplicitScanContext = rawSource.includes("@source") || rawSource.includes("@config");
|
|
5149
5205
|
const cssPipelineContext = {
|
|
5150
5206
|
...createInitialCssPipelineContext(file),
|
|
5151
5207
|
bundle
|
|
5152
5208
|
};
|
|
5209
|
+
const rootImportShellOutputFile = resolveReplayCssOutputFile(outDir, originalSource.fileName || file);
|
|
5210
|
+
let rememberedFrameworkRootImportTarget = frameworkRootImportShellTargetByFile.get(rootImportShellOutputFile);
|
|
5211
|
+
const isCurrentFrameworkRootImportShell = shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
5212
|
+
css: rawSource,
|
|
5213
|
+
file: rootImportShellOutputFile,
|
|
5214
|
+
isWebGeneratorTarget,
|
|
5215
|
+
matchesCss: opts.cssMatcher(rootImportShellOutputFile) || opts.cssMatcher(file),
|
|
5216
|
+
shouldKeep: () => context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5217
|
+
...cssPipelineContext,
|
|
5218
|
+
css: rawSource,
|
|
5219
|
+
file: rootImportShellOutputFile
|
|
5220
|
+
})
|
|
5221
|
+
});
|
|
5222
|
+
if (isCurrentFrameworkRootImportShell) {
|
|
5223
|
+
const importedFile = resolveSingleCssImportOutputFile(rootImportShellOutputFile, rawSource);
|
|
5224
|
+
if (importedFile && isRootMiniProgramStyleOutputFile$1(importedFile)) frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, importedFile);
|
|
5225
|
+
}
|
|
5226
|
+
if (!rememberedFrameworkRootImportTarget && !isCurrentFrameworkRootImportShell && !isWebGeneratorTarget && isRootMiniProgramStyleOutputFile$1(rootImportShellOutputFile) && normalizeOutputPathKey(assetSourceFile) === normalizeOutputPathKey(file) && opts.mainCssChunkMatcher(rootImportShellOutputFile, opts.appType) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5227
|
+
...cssPipelineContext,
|
|
5228
|
+
css: rawSource,
|
|
5229
|
+
file: rootImportShellOutputFile
|
|
5230
|
+
})) && !shouldMoveRootMiniProgramStyleToImportShellOrigin(context.cssPipelineStrategy?.shouldMoveRootMiniProgramStyleToImportShellOrigin?.({
|
|
5231
|
+
...cssPipelineContext,
|
|
5232
|
+
file: rootImportShellOutputFile
|
|
5233
|
+
}))) {
|
|
5234
|
+
const rootGeneratedTargets = /* @__PURE__ */ new Set();
|
|
5235
|
+
for (const entry of getConfiguredTailwindV4CssSourceEntries()) {
|
|
5236
|
+
const targetFile = resolveMatchedCssSourceOutputFile(entry.file);
|
|
5237
|
+
if (targetFile && isRootMiniProgramStyleOutputFile$1(targetFile) && normalizeOutputPathKey(targetFile) !== normalizeOutputPathKey(rootImportShellOutputFile)) rootGeneratedTargets.add(targetFile);
|
|
5238
|
+
}
|
|
5239
|
+
for (const [, record] of getViteProcessedCssAssetResults?.() ?? []) {
|
|
5240
|
+
if (typeof record === "string" || record.injectIntoMain !== true || !record.outputFile) continue;
|
|
5241
|
+
const targetFile = resolveViteCssPipelineOutputFile(record.outputFile, opts, rootDir, isWebGeneratorTarget, shouldPreserveAppCssExtension, sourceRoot, defaultStyleOutputExtension, bundleFiles);
|
|
5242
|
+
if (isRootMiniProgramStyleOutputFile$1(targetFile) && normalizeOutputPathKey(targetFile) !== normalizeOutputPathKey(rootImportShellOutputFile)) rootGeneratedTargets.add(targetFile);
|
|
5243
|
+
}
|
|
5244
|
+
if (rootGeneratedTargets.size === 1) {
|
|
5245
|
+
const [targetFile] = rootGeneratedTargets;
|
|
5246
|
+
if (targetFile) {
|
|
5247
|
+
rememberedFrameworkRootImportTarget = targetFile;
|
|
5248
|
+
frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, targetFile);
|
|
5249
|
+
debug("css remember framework root generated target: %s -> %s", rootImportShellOutputFile, targetFile);
|
|
5250
|
+
}
|
|
5251
|
+
}
|
|
5252
|
+
}
|
|
5153
5253
|
let outputFile = resolveCssBundleOutputFile({
|
|
5154
5254
|
bundleFiles,
|
|
5155
5255
|
cssPipelineStrategy: context.cssPipelineStrategy,
|
|
@@ -5160,6 +5260,14 @@ function createGenerateBundleHook(context) {
|
|
|
5160
5260
|
pipelineContext: cssPipelineContext,
|
|
5161
5261
|
shouldPreserveAppCssExtension
|
|
5162
5262
|
});
|
|
5263
|
+
if (rememberedFrameworkRootImportTarget && !isWebGeneratorTarget && (opts.cssMatcher(rootImportShellOutputFile) || opts.cssMatcher(file)) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5264
|
+
...cssPipelineContext,
|
|
5265
|
+
css: rawSource,
|
|
5266
|
+
file: rootImportShellOutputFile
|
|
5267
|
+
}))) {
|
|
5268
|
+
outputFile = rememberedFrameworkRootImportTarget;
|
|
5269
|
+
debug("css reuse framework root import shell target: %s -> %s", rootImportShellOutputFile, outputFile);
|
|
5270
|
+
}
|
|
5163
5271
|
const resolveMatchedOutputFileForCurrentAsset = createMatchedCssSourceOutputResolver({
|
|
5164
5272
|
assetSourceFile,
|
|
5165
5273
|
file,
|
|
@@ -5218,6 +5326,7 @@ function createGenerateBundleHook(context) {
|
|
|
5218
5326
|
return await refreshRememberedCssSource?.(remembered) ?? remembered;
|
|
5219
5327
|
}));
|
|
5220
5328
|
rememberedCssSources = rememberedCssSources.filter((remembered) => {
|
|
5329
|
+
if (currentRawSourceHasExplicitScanContext && !remembered.rawSource.includes("@source") && !remembered.rawSource.includes("@config")) return false;
|
|
5221
5330
|
if (hasExplicitConfiguredRootCssEntryForOutput(outputFile) && !configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile))) return false;
|
|
5222
5331
|
if (!configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile))) return true;
|
|
5223
5332
|
const matchedOutputFile = resolveMatchedOutputFileForCurrentAsset(remembered.sourceFile);
|
|
@@ -5237,7 +5346,7 @@ function createGenerateBundleHook(context) {
|
|
|
5237
5346
|
let outputCssHandlerOptions = getCssHandlerOptions(outputFile);
|
|
5238
5347
|
const configuredRootSourceStyle = resolveConfiguredRootCssSourceStyle(outputFile, getConfiguredTailwindV4CssSourceEntries(), originalSource.originalFileNames);
|
|
5239
5348
|
const hasExplicitRememberedRootSource = rememberedCssSources.some((remembered) => configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile)));
|
|
5240
|
-
if (configuredRootSourceStyle && (!hasUsableRememberedTailwindSource || !hasExplicitRememberedRootSource)) {
|
|
5349
|
+
if (configuredRootSourceStyle != null && (!currentRawSourceHasExplicitScanContext || hasTailwindGenerationSource(configuredRootSourceStyle.rawSource)) && (!hasUsableRememberedTailwindSource || !hasExplicitRememberedRootSource)) {
|
|
5241
5350
|
rememberedCssSources = [configuredRootSourceStyle];
|
|
5242
5351
|
hasUsableRememberedTailwindSource = true;
|
|
5243
5352
|
debug("source style source inferred from configured root tailwind v4 css source: %s -> %s", outputFile, configuredRootSourceStyle.sourceFile);
|
|
@@ -5352,6 +5461,7 @@ function createGenerateBundleHook(context) {
|
|
|
5352
5461
|
}
|
|
5353
5462
|
}
|
|
5354
5463
|
}
|
|
5464
|
+
if (currentRawSourceHasExplicitScanContext) rememberedCssSources = rememberedCssSources.filter((remembered) => remembered.rawSource.includes("@source") || remembered.rawSource.includes("@config"));
|
|
5355
5465
|
let rememberedCssSource = mergeRememberedCssSources(rememberedCssSources, outputFile);
|
|
5356
5466
|
if (rememberedCssSource && viteProcessedCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(rememberedCssSource.sourceFile))) {
|
|
5357
5467
|
const matchedOutputFile = resolveMatchedOutputFileForCurrentAsset(rememberedCssSource.sourceFile);
|
|
@@ -5365,6 +5475,17 @@ function createGenerateBundleHook(context) {
|
|
|
5365
5475
|
};
|
|
5366
5476
|
}
|
|
5367
5477
|
}
|
|
5478
|
+
if (!isWebGeneratorTarget && isRootMiniProgramStyleOutputFile$1(rootImportShellOutputFile) && isRootMiniProgramStyleOutputFile$1(outputFile) && normalizeOutputPathKey(rootImportShellOutputFile) !== normalizeOutputPathKey(outputFile) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5479
|
+
...cssPipelineContext,
|
|
5480
|
+
css: rawSource,
|
|
5481
|
+
file: rootImportShellOutputFile
|
|
5482
|
+
})) && !shouldMoveRootMiniProgramStyleToImportShellOrigin(context.cssPipelineStrategy?.shouldMoveRootMiniProgramStyleToImportShellOrigin?.({
|
|
5483
|
+
...cssPipelineContext,
|
|
5484
|
+
file: rootImportShellOutputFile
|
|
5485
|
+
}))) {
|
|
5486
|
+
frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, outputFile);
|
|
5487
|
+
debug("css remember framework root import shell target: %s -> %s", rootImportShellOutputFile, outputFile);
|
|
5488
|
+
}
|
|
5368
5489
|
const shouldKeepImportedCssShell = isCssImportOnlyBundleAsset(bundle, file, rawSource);
|
|
5369
5490
|
const useRememberedCssSource = !shouldKeepImportedCssShell && rememberedCssSource != null && (normalizeOutputPathKey(rememberedCssSource.sourceFile) !== normalizeOutputPathKey(file) || !hasTailwindGenerationSource(rawSource) && hasTailwindGenerationSource(rememberedCssSource.rawSource));
|
|
5370
5491
|
const vitePipelineCssAsset = viteProcessedCssAsset || useRememberedCssSource;
|
|
@@ -5385,6 +5506,8 @@ function createGenerateBundleHook(context) {
|
|
|
5385
5506
|
const hasSameOutputRememberedTailwindGenerationSource = hasRememberedTailwindGenerationSource && rememberedCssSource != null && normalizeOutputPathKey(rememberedCssSource.outputFile) === normalizeOutputPathKey(outputFile);
|
|
5386
5507
|
const hasStaleViteProcessedCssSource = vitePipelineCssAsset && hasDifferentRememberedCssSource && (hasCurrentTailwindGenerationDirective || hasRememberedApplyDirective || hasRememberedTailwindGenerationSource);
|
|
5387
5508
|
const generatorSourceFile = vitePipelineCssAsset ? rememberedCssSource?.sourceFile ?? assetSourceFile : assetSourceFile;
|
|
5509
|
+
const originalGeneratorLayerSource = vitePipelineCssAsset ? getOriginalCssLayerSource?.(generatorSourceFile) : void 0;
|
|
5510
|
+
const generatorUserLayerRawSource = originalGeneratorLayerSource && normalizeCssSourceForCompare(originalGeneratorLayerSource) !== normalizeCssSourceForCompare(generatorRawSource) && hasUserCssLayerBlocks(originalGeneratorLayerSource) ? normalizeMiniProgramGeneratorRawSource(normalizeGeneratorUserRawSource(originalGeneratorLayerSource, generatorSourceFile, assetSourceFile), outputFile) : void 0;
|
|
5388
5511
|
const webviewRootCssInjectionTarget = vitePipelineCssAsset ? resolveConfiguredCssEntryRootInjectionTarget(generatorSourceFile, outputFile) : void 0;
|
|
5389
5512
|
const usesConfiguredTailwindV4FallbackSource = rememberedCssSource != null && normalizeOutputPathKey(rememberedCssSource.outputFile) === normalizeOutputPathKey(outputFile) && normalizeOutputPathKey(rememberedCssSource.sourceFile.replace(/[?#].*$/, "")) !== normalizeOutputPathKey(file);
|
|
5390
5513
|
if (vitePipelineCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(generatorSourceFile))) {
|
|
@@ -5515,7 +5638,10 @@ function createGenerateBundleHook(context) {
|
|
|
5515
5638
|
const previousCss = !vitePipelineCssAsset && useIncrementalMode && !generatorCandidatesChanged && !hasRuntimeAffectingChanges && !snapshot.changedByType.css.has(file) ? getLastCssResult(lastCssResultByFile, outputFile, file) : void 0;
|
|
5516
5639
|
const generatorTransformRawSource = generatorRawSource;
|
|
5517
5640
|
const previousGeneratorCss = previousCss && !isWebGeneratorTarget ? normalizeMiniProgramGeneratorRawSource(previousCss, outputFile) : previousCss;
|
|
5518
|
-
const
|
|
5641
|
+
const shouldGenerateCssWithCore = hasTailwindGenerationSource(generatorTransformRawSource) || hasBundlerGeneratedCssMarker(rawSource);
|
|
5642
|
+
const bundleUserRawSource = vitePipelineCssAsset && !hasBundlerGeneratedCssMarker(rawSource) && normalizeCssSourceForCompare(rawSource) !== normalizeCssSourceForCompare(generatorRawSource) ? normalizeMiniProgramGeneratorRawSource(normalizeGeneratorUserRawSource(rawSource, generatorSourceFile, assetSourceFile), outputFile) : void 0;
|
|
5643
|
+
const generatorUserRawSource = [generatorUserLayerRawSource, bundleUserRawSource].filter((source) => typeof source === "string" && source.trim().length > 0).join("\n");
|
|
5644
|
+
const generated = shouldGenerateCssWithCore ? await generateTailwindV4Css({
|
|
5519
5645
|
opts,
|
|
5520
5646
|
runtimeState,
|
|
5521
5647
|
runtime: scopedGeneratorRuntime,
|
|
@@ -5530,7 +5656,7 @@ function createGenerateBundleHook(context) {
|
|
|
5530
5656
|
styleHandler,
|
|
5531
5657
|
debug,
|
|
5532
5658
|
previousCss: previousGeneratorCss,
|
|
5533
|
-
...
|
|
5659
|
+
...generatorUserRawSource ? { userRawSource: generatorUserRawSource } : {},
|
|
5534
5660
|
...usesConfiguredTailwindV4FallbackSource ? { restoreLocalCssImports: false } : {}
|
|
5535
5661
|
}) : void 0;
|
|
5536
5662
|
if (generated) {
|
|
@@ -5628,6 +5754,8 @@ function createGenerateBundleHook(context) {
|
|
|
5628
5754
|
cache,
|
|
5629
5755
|
changedCssFiles: snapshot.changedByType.css,
|
|
5630
5756
|
cssTaskFactories,
|
|
5757
|
+
cssPipelineContext,
|
|
5758
|
+
cssPipelineStrategy: context.cssPipelineStrategy,
|
|
5631
5759
|
createScopedGeneratorRuntime: createScopedGeneratorRuntime$1,
|
|
5632
5760
|
createScopedSourceCandidateGetter,
|
|
5633
5761
|
createScopedSourceCandidateSourceGetter,
|
|
@@ -5792,7 +5920,7 @@ function createViteCssFinalizerOutputPlugin(context) {
|
|
|
5792
5920
|
generateBundle: {
|
|
5793
5921
|
order: "post",
|
|
5794
5922
|
async handler(_options, bundle) {
|
|
5795
|
-
const { opts, runtimeState, ensureRuntimeClassSet, cssPipelineStrategy, isCssAssetProcessed, markCssAssetProcessed, debug, getResolvedConfig, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getRecordedGeneratorCandidates, getSourceCandidates, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberMainCssSource, getRememberedMainCssSource, isViteProcessedCssAsset } = context;
|
|
5923
|
+
const { opts, runtimeState, ensureRuntimeClassSet, cssPipelineStrategy, isCssAssetProcessed, markCssAssetProcessed, debug, getResolvedConfig, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getRecordedGeneratorCandidates, getSourceCandidates, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberMainCssSource, getRememberedMainCssSource, isViteProcessedCssAsset, frameworkRootImportShellTargetByFile } = context;
|
|
5796
5924
|
const resolvedConfig = getResolvedConfig();
|
|
5797
5925
|
const uniUtsPlatform = resolveUniUtsPlatform();
|
|
5798
5926
|
const generatorPlatform = opts.cssOptions?.platform ?? opts.platform ?? inferPlatformFromViteOutDir(resolvedConfig?.build?.outDir);
|
|
@@ -5825,6 +5953,19 @@ function createViteCssFinalizerOutputPlugin(context) {
|
|
|
5825
5953
|
const rootDir = resolvedConfig?.root ? path.resolve(resolvedConfig.root) : process$1.cwd();
|
|
5826
5954
|
const outDir = resolvedConfig?.build?.outDir ? path.resolve(rootDir, resolvedConfig.build.outDir) : rootDir;
|
|
5827
5955
|
const sourceRoot = resolveWeappViteSourceRoot(resolvedConfig, opts.appType) ?? resolveSourceRootFromBundleGraph(resolvedConfig, bundle);
|
|
5956
|
+
restoreFrameworkRootMiniProgramImportShellAssets(bundle, {
|
|
5957
|
+
debug,
|
|
5958
|
+
isWebGeneratorTarget,
|
|
5959
|
+
matchesCss: opts.cssMatcher,
|
|
5960
|
+
onUpdate: opts.onUpdate,
|
|
5961
|
+
recordCssAssetResult,
|
|
5962
|
+
shouldKeep: (file, css) => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5963
|
+
...createCssPipelineContext(file),
|
|
5964
|
+
css,
|
|
5965
|
+
file
|
|
5966
|
+
}),
|
|
5967
|
+
targetByFile: frameworkRootImportShellTargetByFile ?? /* @__PURE__ */ new Map()
|
|
5968
|
+
});
|
|
5828
5969
|
const sourceTraceTokenSources = getSourceCandidateSourcesForEntries ? createCssTokenSourceMap(getSourceCandidateSourcesForEntries(void 0), opts) : void 0;
|
|
5829
5970
|
const annotateCss = (css) => annotateCssSourceTrace(css, {
|
|
5830
5971
|
opts,
|
|
@@ -6819,6 +6960,22 @@ function createViteServeJsTransformPlugin(options) {
|
|
|
6819
6960
|
};
|
|
6820
6961
|
}
|
|
6821
6962
|
//#endregion
|
|
6963
|
+
//#region src/bundlers/vite/serve-root-import-shell.ts
|
|
6964
|
+
function resolveViteServeRootMiniProgramImportShell(options) {
|
|
6965
|
+
const { css, cssPipelineContext, cssPipelineStrategy, isWebGeneratorTarget, outputFile } = options;
|
|
6966
|
+
return shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
6967
|
+
css,
|
|
6968
|
+
file: outputFile,
|
|
6969
|
+
isWebGeneratorTarget,
|
|
6970
|
+
matchesCss: cssPipelineContext.opts?.cssMatcher?.(outputFile) ?? true,
|
|
6971
|
+
shouldKeep: () => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
6972
|
+
...cssPipelineContext,
|
|
6973
|
+
css,
|
|
6974
|
+
file: outputFile
|
|
6975
|
+
})
|
|
6976
|
+
}) ? normalizeMiniProgramImportShell(css) : void 0;
|
|
6977
|
+
}
|
|
6978
|
+
//#endregion
|
|
6822
6979
|
//#region src/bundlers/vite/tailwind-basedir.ts
|
|
6823
6980
|
const PACKAGE_JSON_FILE = "package.json";
|
|
6824
6981
|
function resolveImplicitTailwindcssBasedirFromViteRoot(root) {
|
|
@@ -6971,6 +7128,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
6971
7128
|
cssEntries: opts.cssEntries ?? rawOptions.cssEntries
|
|
6972
7129
|
});
|
|
6973
7130
|
const autoCssSourceContent = /* @__PURE__ */ new Map();
|
|
7131
|
+
const frameworkRootImportShellTargetByFile = /* @__PURE__ */ new Map();
|
|
6974
7132
|
const transientAutoCssSources = /* @__PURE__ */ new Map();
|
|
6975
7133
|
let refreshRuntimeStateForAutoCssSources;
|
|
6976
7134
|
let autoCssSourcesRefresh;
|
|
@@ -7047,7 +7205,21 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7047
7205
|
};
|
|
7048
7206
|
const customAttributesEntities = toCustomAttributesEntities(customAttributes);
|
|
7049
7207
|
let recordedGeneratorCandidates;
|
|
7050
|
-
const sourceCandidateCollector = createSourceCandidateCollector({
|
|
7208
|
+
const sourceCandidateCollector = createSourceCandidateCollector({
|
|
7209
|
+
bareArbitraryValues: opts.arbitraryValues?.bareArbitraryValues,
|
|
7210
|
+
customAttributesEntities,
|
|
7211
|
+
disabledDefaultTemplateHandler
|
|
7212
|
+
});
|
|
7213
|
+
const originalCssLayerSourceByFile = new LRUCache({ max: 128 });
|
|
7214
|
+
const rememberOriginalCssLayerSource = (id, code) => {
|
|
7215
|
+
const file = cleanUrl(id);
|
|
7216
|
+
if (!isCSSRequest(file)) return;
|
|
7217
|
+
if (!hasUserCssLayerBlocks(code)) {
|
|
7218
|
+
originalCssLayerSourceByFile.delete(file);
|
|
7219
|
+
return;
|
|
7220
|
+
}
|
|
7221
|
+
originalCssLayerSourceByFile.set(file, splitUserCssLayerBlocks(code).layer);
|
|
7222
|
+
};
|
|
7051
7223
|
const sourceCandidateScanCache = new LRUCache({ max: SOURCE_CANDIDATE_SCAN_CACHE_MAX });
|
|
7052
7224
|
let sourceScanEntries;
|
|
7053
7225
|
let sourceScanMatcher;
|
|
@@ -7123,7 +7295,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7123
7295
|
let pendingHmrCandidateChange;
|
|
7124
7296
|
let pendingHmrCssTargetFiles;
|
|
7125
7297
|
let pendingFullHmrCssRegeneration = false;
|
|
7126
|
-
const
|
|
7298
|
+
const normalizeGeneratedCssCacheFile = (file) => normalizeVitePersistentCacheKey(cleanUrl(file));
|
|
7299
|
+
const normalizeHmrCssTargetFile = normalizeGeneratedCssCacheFile;
|
|
7127
7300
|
const collectPendingHmrCssTargetFiles = (cssModules, fallbackCssIds) => {
|
|
7128
7301
|
const targets = /* @__PURE__ */ new Set();
|
|
7129
7302
|
const addTarget = (file) => {
|
|
@@ -7196,7 +7369,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7196
7369
|
return change;
|
|
7197
7370
|
};
|
|
7198
7371
|
const resolvePendingHmrCandidateChange = (generatorCode, file) => {
|
|
7199
|
-
|
|
7372
|
+
const fileKey = normalizeGeneratedCssCacheFile(file);
|
|
7373
|
+
if (resolvedConfig?.command !== "serve" || !pendingHmrCandidateChange || pendingHmrCandidateChange.runtimeAffecting || pendingHmrCandidateChange.addedCandidates.size === 0 || resolveCurrentGeneratorOptions().target === "weapp" && hasUserCssLayerBlocks(generatorCode) || !cleanGeneratedCssByFile.has(fileKey) || !generatedClassSetByFile.has(fileKey) || pendingHmrCssTargetFiles !== void 0 && !pendingHmrCssTargetFiles.has(fileKey)) return;
|
|
7200
7374
|
return pendingHmrCandidateChange;
|
|
7201
7375
|
};
|
|
7202
7376
|
const finishPendingHmrCssTargetFile = (file) => {
|
|
@@ -7450,12 +7624,41 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7450
7624
|
const sourceRoot = resolveWeappViteSourceRoot(resolvedConfig, opts.appType);
|
|
7451
7625
|
const outputFile = resolveViteCssPipelineOutputFile(requestFile, opts, rootDir, currentGeneratorBranch.isWeb, shouldPreserveStyleOutputExtension, sourceRoot);
|
|
7452
7626
|
const generatorTransformCode = currentGeneratorBranch.isWeb ? generatorCode : normalizeMiniProgramGeneratorCssSource(generatorCode, outputFile);
|
|
7627
|
+
const fileKey = normalizeGeneratedCssCacheFile(file);
|
|
7453
7628
|
const fullRuntime = getSourceCandidates() ?? getRecordedGeneratorCandidates() ?? await ensureRuntimeClassSet();
|
|
7454
7629
|
const pendingHmrChange = resolvePendingHmrCandidateChange(generatorCode, file);
|
|
7455
7630
|
const forceFullHmrCssRegeneration = pendingFullHmrCssRegeneration || resolvedConfig?.command === "serve" && pendingHmrCandidateChange !== void 0 && pendingHmrChange === void 0;
|
|
7456
7631
|
const runtime = fullRuntime;
|
|
7632
|
+
const importShellCss = resolveViteServeRootMiniProgramImportShell({
|
|
7633
|
+
css: generatorTransformCode,
|
|
7634
|
+
cssPipelineContext,
|
|
7635
|
+
cssPipelineStrategy: frameworkCssPipelineStrategy,
|
|
7636
|
+
isWebGeneratorTarget: currentGeneratorBranch.isWeb,
|
|
7637
|
+
outputFile
|
|
7638
|
+
});
|
|
7639
|
+
if (importShellCss !== void 0) {
|
|
7640
|
+
cleanGeneratedCssByFile.set(fileKey, importShellCss);
|
|
7641
|
+
tracedGeneratedCssByFile.set(fileKey, importShellCss);
|
|
7642
|
+
generatedClassSetByFile.set(fileKey, /* @__PURE__ */ new Set());
|
|
7643
|
+
recordViteProcessedCssAssetResult(file, importShellCss, {
|
|
7644
|
+
injectIntoMain: false,
|
|
7645
|
+
outputFile
|
|
7646
|
+
});
|
|
7647
|
+
markViteProcessedCssSource(file);
|
|
7648
|
+
rememberTailwindRootCssModule(id);
|
|
7649
|
+
recordGeneratorCandidates(fullRuntime);
|
|
7650
|
+
if (pendingHmrChange) finishPendingHmrCssTargetFile(file);
|
|
7651
|
+
else if (!pendingHmrCandidateChange) clearPendingHmrCandidateChange();
|
|
7652
|
+
cssMemory.rememberCssSource({
|
|
7653
|
+
outputFile,
|
|
7654
|
+
rawSource: code,
|
|
7655
|
+
sourceFile: requestFile
|
|
7656
|
+
});
|
|
7657
|
+
debug("css preserved root mini-program import shell for vite postcss pipeline: %s bytes=%d", requestFile, importShellCss.length);
|
|
7658
|
+
return importShellCss;
|
|
7659
|
+
}
|
|
7457
7660
|
if (pendingHmrChange && currentGeneratorOptions.target === "weapp" && filterUnsupportedMiniProgramTailwindV4Candidates(pendingHmrChange.addedCandidates).size === 0) {
|
|
7458
|
-
const previousTracedCss = tracedGeneratedCssByFile.get(
|
|
7661
|
+
const previousTracedCss = tracedGeneratedCssByFile.get(fileKey);
|
|
7459
7662
|
if (previousTracedCss !== void 0) {
|
|
7460
7663
|
finishPendingHmrCssTargetFile(file);
|
|
7461
7664
|
return `${createBundlerGeneratedCssMarker("vite", normalizeViteProcessedCssFile(file))}\n${previousTracedCss}`;
|
|
@@ -7477,6 +7680,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7477
7680
|
cssHandlerOptions,
|
|
7478
7681
|
generatorCode: generatorTransformCode
|
|
7479
7682
|
}) ?? true);
|
|
7683
|
+
const previousCss = pendingHmrChange && !forceFullHmrCssRegeneration ? cleanGeneratedCssByFile.get(fileKey) : void 0;
|
|
7684
|
+
const previousGeneratorCss = previousCss && !currentGeneratorBranch.isWeb ? normalizeMiniProgramGeneratorCssSource(previousCss, outputFile) : previousCss;
|
|
7480
7685
|
const generated = await hmrTimingRecorder.measure("generateCss.serve", () => generateTailwindV4Css({
|
|
7481
7686
|
opts,
|
|
7482
7687
|
runtimeState,
|
|
@@ -7491,13 +7696,15 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7491
7696
|
generatorPlatform: resolveGeneratorPlatform(),
|
|
7492
7697
|
styleHandler,
|
|
7493
7698
|
debug,
|
|
7699
|
+
previousCss: previousGeneratorCss,
|
|
7700
|
+
previousClassSet: pendingHmrChange && !forceFullHmrCssRegeneration ? generatedClassSetByFile.get(fileKey) : void 0,
|
|
7494
7701
|
deferEmptyScopedCssSource: shouldDeferEmptyScopedCssSource,
|
|
7495
7702
|
disableSourceScan: false,
|
|
7496
7703
|
restoreLocalCssImports: !currentGeneratorBranch.isWeb
|
|
7497
7704
|
}), {
|
|
7498
7705
|
file,
|
|
7499
7706
|
memoryDebug: {
|
|
7500
|
-
cleanCacheHit: cleanGeneratedCssByFile.has(
|
|
7707
|
+
cleanCacheHit: cleanGeneratedCssByFile.has(fileKey),
|
|
7501
7708
|
forceFullHmrCssRegeneration,
|
|
7502
7709
|
pendingAddedCandidates: pendingHmrCandidateChange?.addedCandidates.size ?? 0,
|
|
7503
7710
|
pendingCssTargets: pendingHmrCssTargetFiles?.size ?? 0,
|
|
@@ -7524,9 +7731,9 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7524
7731
|
tokenSources: createCssTokenSourceMap(getSourceCandidateSourcesForEntries(void 0), opts)
|
|
7525
7732
|
});
|
|
7526
7733
|
for (const dependency of generated.dependencies) hookContext?.addWatchFile?.(dependency);
|
|
7527
|
-
cleanGeneratedCssByFile.set(
|
|
7528
|
-
tracedGeneratedCssByFile.set(
|
|
7529
|
-
generatedClassSetByFile.set(
|
|
7734
|
+
cleanGeneratedCssByFile.set(fileKey, outputCss);
|
|
7735
|
+
tracedGeneratedCssByFile.set(fileKey, tracedCss);
|
|
7736
|
+
generatedClassSetByFile.set(fileKey, new Set(generated.classSet));
|
|
7530
7737
|
const shouldInjectGeneratedCssIntoMain = mainCssChunkMatcher(outputFile, opts.appType) || hasTailwindRootDirectives(generatorTransformCode, { importFallback: currentGeneratorOptions.importFallback }) && !normalizeOutputPathKey(outputFile).includes("/");
|
|
7531
7738
|
recordViteProcessedCssAssetResult(file, tracedCss, {
|
|
7532
7739
|
injectIntoMain: shouldInjectGeneratedCssIntoMain,
|
|
@@ -7594,11 +7801,13 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7594
7801
|
setRememberedCssSignature: cssMemory.setRememberedCssSignature,
|
|
7595
7802
|
getKnownCssSource: cssMemory.getKnownCssSource,
|
|
7596
7803
|
getKnownSfcSource: cssMemory.getKnownSfcSource,
|
|
7804
|
+
getOriginalCssLayerSource: (file) => originalCssLayerSourceByFile.get(cleanUrl(file)),
|
|
7597
7805
|
recordGeneratorCandidates,
|
|
7598
7806
|
pruneViteCssCaches,
|
|
7599
7807
|
getViteCssCacheStats,
|
|
7600
7808
|
hmrTimingRecorder,
|
|
7601
|
-
cssPipelineStrategy: frameworkCssPipelineStrategy
|
|
7809
|
+
cssPipelineStrategy: frameworkCssPipelineStrategy,
|
|
7810
|
+
frameworkRootImportShellTargetByFile
|
|
7602
7811
|
});
|
|
7603
7812
|
const cssFinalizerOutputPlugin = createViteCssFinalizerOutputPlugin({
|
|
7604
7813
|
opts,
|
|
@@ -7618,6 +7827,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7618
7827
|
getSourceCandidatesForEntries,
|
|
7619
7828
|
getSourceCandidateSourcesForEntries,
|
|
7620
7829
|
waitForSourceCandidateSyncs,
|
|
7830
|
+
frameworkRootImportShellTargetByFile,
|
|
7621
7831
|
rememberMainCssSource: (file, rawSource) => cssMemory.rememberCssSource({
|
|
7622
7832
|
outputFile: file,
|
|
7623
7833
|
rawSource,
|
|
@@ -7653,6 +7863,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7653
7863
|
if (!shouldOwnTailwindGeneration || isWebOrNativeAppPlatform(resolveViteStylePlatform()) || !isCSSRequest(id) || !shouldCollectTransformedSourceCandidates(id)) return;
|
|
7654
7864
|
const rawCode = await readFile(cleanUrl(id), "utf8").catch(() => void 0);
|
|
7655
7865
|
if (typeof rawCode !== "string") return;
|
|
7866
|
+
rememberOriginalCssLayerSource(id, rawCode);
|
|
7656
7867
|
const transformedCode = transformEarlyMiniProgramCss(rawCode);
|
|
7657
7868
|
if (transformedCode === rawCode) return;
|
|
7658
7869
|
cssMemory.rememberKnownSfcSource(id, transformedCode);
|
|
@@ -7661,6 +7872,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7661
7872
|
transform: {
|
|
7662
7873
|
order: "pre",
|
|
7663
7874
|
async handler(code, id) {
|
|
7875
|
+
if (hasUserCssLayerBlocks(code)) rememberOriginalCssLayerSource(id, code);
|
|
7664
7876
|
let transformedCode = code;
|
|
7665
7877
|
if (shouldOwnTailwindGeneration && !resolveCurrentGeneratorBranch().isWeb && isCSSRequest(id)) transformedCode = transformEarlyMiniProgramCss(code);
|
|
7666
7878
|
const shouldReturnTransformedCode = transformedCode !== code;
|
|
@@ -7716,6 +7928,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7716
7928
|
}
|
|
7717
7929
|
const canReadHotSource = typeof ctx.read === "function";
|
|
7718
7930
|
const hotSource = isSourceCandidateHotUpdate && canReadHotSource ? await ctx.read().catch(() => void 0) : void 0;
|
|
7931
|
+
if (typeof hotSource === "string" && isCSSRequest(ctx.file)) rememberOriginalCssLayerSource(ctx.file, hotSource);
|
|
7719
7932
|
const sourceCandidateChange = await syncChangedSourceCandidateFile(ctx.file, hotSource);
|
|
7720
7933
|
const isWebLikeHotUpdate = isCurrentWebLikeStylePlatform();
|
|
7721
7934
|
let canUseHmrCandidateAppend = false;
|