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,13 +1,13 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-emK7D4bc.js");
|
|
2
2
|
const require_framework = require("./framework.js");
|
|
3
|
-
const require_generator = require("./generator-
|
|
3
|
+
const require_generator = require("./generator-CEnUsjed.js");
|
|
4
4
|
const require_object = require("./object-COs_Mw6p.js");
|
|
5
|
-
const require_tailwindcss = require("./tailwindcss-
|
|
5
|
+
const require_tailwindcss = require("./tailwindcss-KBYPJ2DW.js");
|
|
6
6
|
require("./utils-CuKLf1Zv.js");
|
|
7
7
|
const require_wxml = require("./wxml-Ce10eREX.js");
|
|
8
|
-
const require_context = require("./context-
|
|
9
|
-
const require_hmr_timing = require("./hmr-timing-
|
|
10
|
-
const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-
|
|
8
|
+
const require_context = require("./context-VeFq_8vW.js");
|
|
9
|
+
const require_hmr_timing = require("./hmr-timing-BZ5sWIqO.js");
|
|
10
|
+
const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-R3dzamcm.js");
|
|
11
11
|
require("./logger-TlKT3xmR.js");
|
|
12
12
|
let node_fs = require("node:fs");
|
|
13
13
|
node_fs = require_rolldown_runtime.__toESM(node_fs);
|
|
@@ -905,6 +905,21 @@ function createRelativeCssImportRequest$1(targetFile, importedFile) {
|
|
|
905
905
|
function createCssImportShell$1(targetFile, importedFile) {
|
|
906
906
|
return `@import "${createRelativeCssImportRequest$1(targetFile, importedFile)}";\n`;
|
|
907
907
|
}
|
|
908
|
+
function resolveSingleCssImportOutputFile(targetFile, css) {
|
|
909
|
+
let importedFile;
|
|
910
|
+
try {
|
|
911
|
+
_weapp_tailwindcss_postcss.postcss.parse(css).walkAtRules("import", (atRule) => {
|
|
912
|
+
if (importedFile !== void 0) return;
|
|
913
|
+
const request = require_generator.parseImportRequest(atRule.params);
|
|
914
|
+
if (!request || /^(?:https?:)?\/\//i.test(request) || request.startsWith("data:")) return;
|
|
915
|
+
const cleanRequest = request.replace(/[?#].*$/, "");
|
|
916
|
+
if (!/\.(?:css|wxss|acss|ttss|qss|jxss|tyss)$/i.test(cleanRequest)) return;
|
|
917
|
+
const targetDir = node_path.default.posix.dirname(require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile));
|
|
918
|
+
importedFile = require_source_candidate_scan_signature.normalizeOutputPathKey(node_path.default.posix.join(targetDir === "." ? "" : targetDir, cleanRequest));
|
|
919
|
+
});
|
|
920
|
+
} catch {}
|
|
921
|
+
return importedFile;
|
|
922
|
+
}
|
|
908
923
|
function createRootMiniProgramOriginStyleOutputFile(file) {
|
|
909
924
|
const normalized = require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
|
|
910
925
|
if (/(?:^|\/)[^/]+-origin\.[^.]+$/i.test(normalized)) return normalized;
|
|
@@ -913,6 +928,28 @@ function createRootMiniProgramOriginStyleOutputFile(file) {
|
|
|
913
928
|
function shouldKeepRootMiniProgramStyleAsImportShell(enabled) {
|
|
914
929
|
return enabled === true;
|
|
915
930
|
}
|
|
931
|
+
function shouldPreserveFrameworkRootMiniProgramImportShell(options) {
|
|
932
|
+
return !options.isWebGeneratorTarget && options.matchesCss && isRootMiniProgramStyleOutputFile$1(options.file) && (0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(options.css) && shouldKeepRootMiniProgramStyleAsImportShell(options.shouldKeep());
|
|
933
|
+
}
|
|
934
|
+
function restoreFrameworkRootMiniProgramImportShellAssets(bundle, options) {
|
|
935
|
+
if (options.isWebGeneratorTarget || options.targetByFile.size === 0) return 0;
|
|
936
|
+
let restored = 0;
|
|
937
|
+
for (const [sourceFile, targetFile] of options.targetByFile) {
|
|
938
|
+
if (!options.matchesCss(sourceFile) || !options.matchesCss(targetFile) || !isRootMiniProgramStyleOutputFile$1(sourceFile) || !isRootMiniProgramStyleOutputFile$1(targetFile) || require_source_candidate_scan_signature.normalizeOutputPathKey(sourceFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile)) continue;
|
|
939
|
+
const output = Object.entries(bundle).find(([bundleFile, candidate]) => candidate.type === "asset" && require_source_candidate_scan_signature.normalizeOutputPathKey(candidate.fileName || bundleFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(sourceFile))?.[1];
|
|
940
|
+
if (output?.type !== "asset") continue;
|
|
941
|
+
const rawSource = output.source.toString();
|
|
942
|
+
if (!shouldKeepRootMiniProgramStyleAsImportShell(options.shouldKeep(sourceFile, rawSource))) continue;
|
|
943
|
+
const nextSource = createCssImportShell$1(sourceFile, targetFile);
|
|
944
|
+
if (rawSource === nextSource) continue;
|
|
945
|
+
output.source = nextSource;
|
|
946
|
+
options.recordCssAssetResult?.(sourceFile, nextSource);
|
|
947
|
+
options.onUpdate?.(sourceFile, rawSource, nextSource);
|
|
948
|
+
options.debug?.("restore framework root css import shell: %s -> %s", sourceFile, targetFile);
|
|
949
|
+
restored++;
|
|
950
|
+
}
|
|
951
|
+
return restored;
|
|
952
|
+
}
|
|
916
953
|
function shouldMoveRootMiniProgramStyleToImportShellOrigin(enabled) {
|
|
917
954
|
return enabled === true;
|
|
918
955
|
}
|
|
@@ -2263,11 +2300,17 @@ function isMiniProgramStyleOutputFile(file) {
|
|
|
2263
2300
|
}
|
|
2264
2301
|
function shouldPreserveMiniProgramImportShell(options, bundle, file, css) {
|
|
2265
2302
|
const context = createCssAssetPipelineContext(options, file, bundle);
|
|
2266
|
-
return context !== void 0 &&
|
|
2267
|
-
...context,
|
|
2303
|
+
return context !== void 0 && shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
2268
2304
|
css,
|
|
2269
|
-
file
|
|
2270
|
-
|
|
2305
|
+
file,
|
|
2306
|
+
isWebGeneratorTarget: context.currentGeneratorBranch?.isWeb === true,
|
|
2307
|
+
matchesCss: options.opts.cssMatcher(file),
|
|
2308
|
+
shouldKeep: () => options.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
2309
|
+
...context,
|
|
2310
|
+
css,
|
|
2311
|
+
file
|
|
2312
|
+
})
|
|
2313
|
+
});
|
|
2271
2314
|
}
|
|
2272
2315
|
function resolvePreservedImportShellInjectionTarget(options, bundle, file, css) {
|
|
2273
2316
|
const context = createCssAssetPipelineContext(options, file, bundle);
|
|
@@ -3037,21 +3080,6 @@ function resolveRootMiniProgramOriginStyleFile(file) {
|
|
|
3037
3080
|
if (/(?:^|\/)[^/]+-origin\.[^.]+$/i.test(normalized)) return;
|
|
3038
3081
|
return normalized.replace(/(\.[^.]+)$/, "-origin$1");
|
|
3039
3082
|
}
|
|
3040
|
-
function resolveSingleCssImportOutputFile(targetFile, css) {
|
|
3041
|
-
let importedFile;
|
|
3042
|
-
try {
|
|
3043
|
-
_weapp_tailwindcss_postcss.postcss.parse(css).walkAtRules("import", (atRule) => {
|
|
3044
|
-
if (importedFile !== void 0) return;
|
|
3045
|
-
const request = require_generator.parseImportRequest(atRule.params);
|
|
3046
|
-
if (!request || /^(?:https?:)?\/\//i.test(request) || request.startsWith("data:")) return;
|
|
3047
|
-
const cleanRequest = request.replace(/[?#].*$/, "");
|
|
3048
|
-
if (!/\.(?:css|wxss|acss|ttss|qss|jxss|tyss)$/i.test(cleanRequest)) return;
|
|
3049
|
-
const targetDir = node_path.default.posix.dirname(require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile));
|
|
3050
|
-
importedFile = require_source_candidate_scan_signature.normalizeOutputPathKey(node_path.default.posix.join(targetDir === "." ? "" : targetDir, cleanRequest));
|
|
3051
|
-
});
|
|
3052
|
-
} catch {}
|
|
3053
|
-
return importedFile;
|
|
3054
|
-
}
|
|
3055
3083
|
function normalizeRootMiniProgramImportShellAssets(bundle, options) {
|
|
3056
3084
|
if (!options.enabled) return 0;
|
|
3057
3085
|
let updated = 0;
|
|
@@ -3925,7 +3953,7 @@ function collectRememberedCssReplayGroups(sources, opts, rootDir, isWebGenerator
|
|
|
3925
3953
|
//#endregion
|
|
3926
3954
|
//#region src/bundlers/vite/generate-bundle/remembered-css-replay.ts
|
|
3927
3955
|
async function processRememberedCssReplay(options) {
|
|
3928
|
-
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;
|
|
3956
|
+
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;
|
|
3929
3957
|
const rememberedReplayGroups = collectRememberedCssReplayGroups(getRememberedCssSources?.(), opts, rootDir, isWebGeneratorTarget, shouldPreserveAppCssExtension, sourceRoot, defaultStyleOutputExtension, bundleFiles);
|
|
3930
3958
|
for (const [outputFile, rememberedGroup] of rememberedReplayGroups) {
|
|
3931
3959
|
if (require_source_candidate_scan_signature.isHTMLRequest(outputFile) || options.opts.htmlMatcher(outputFile)) continue;
|
|
@@ -3969,7 +3997,17 @@ async function processRememberedCssReplay(options) {
|
|
|
3969
3997
|
const shouldRecordRememberedReplayCss = useIncrementalMode || isNativeAppStyleTarget;
|
|
3970
3998
|
const shouldEmitRememberedReplayCssAsset = shouldRecordRememberedReplayCss;
|
|
3971
3999
|
if (!shouldRecordRememberedReplayCss) continue;
|
|
3972
|
-
if (
|
|
4000
|
+
if (shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
4001
|
+
css: rawSource,
|
|
4002
|
+
file: outputFile,
|
|
4003
|
+
isWebGeneratorTarget,
|
|
4004
|
+
matchesCss: opts.cssMatcher(outputFile),
|
|
4005
|
+
shouldKeep: () => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
4006
|
+
...cssPipelineContext,
|
|
4007
|
+
css: rawSource,
|
|
4008
|
+
file: outputFile
|
|
4009
|
+
})
|
|
4010
|
+
}) || !isRootMiniProgramStyleOutputFile$1(outputFile) && !isWebGeneratorTarget && (0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(rawSource)) {
|
|
3973
4011
|
cssTaskFactories.push(() => timeTask("css.replay", async () => {
|
|
3974
4012
|
const start = performance.now();
|
|
3975
4013
|
const css = annotateCss(require_hmr_timing.normalizeMiniProgramImportShell(rawSource));
|
|
@@ -4680,6 +4718,7 @@ function createGenerateBundleHook(context) {
|
|
|
4680
4718
|
const lastCssResultByFile = /* @__PURE__ */ new Map();
|
|
4681
4719
|
const lastCssSourceHashByFile = /* @__PURE__ */ new Map();
|
|
4682
4720
|
const lastCssRawSourceHashByFile = /* @__PURE__ */ new Map();
|
|
4721
|
+
const frameworkRootImportShellTargetByFile = context.frameworkRootImportShellTargetByFile ?? /* @__PURE__ */ new Map();
|
|
4683
4722
|
let currentOutDir;
|
|
4684
4723
|
let currentSubpackageRoots;
|
|
4685
4724
|
const createInitialCssPipelineContext = (file) => {
|
|
@@ -4718,7 +4757,7 @@ function createGenerateBundleHook(context) {
|
|
|
4718
4757
|
});
|
|
4719
4758
|
return async function generateBundle(_opt, bundle) {
|
|
4720
4759
|
const addWatchFile = (id) => this.addWatchFile?.(id);
|
|
4721
|
-
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;
|
|
4760
|
+
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;
|
|
4722
4761
|
const getBundlerSfcSource = (sourceFile) => {
|
|
4723
4762
|
const code = this.getModuleInfo?.(sourceFile)?.code;
|
|
4724
4763
|
return typeof code === "string" && hasSfcStyleSources(code) ? code : void 0;
|
|
@@ -4803,16 +4842,38 @@ function createGenerateBundleHook(context) {
|
|
|
4803
4842
|
const envFlags = resolveGenerateBundleEnvFlags();
|
|
4804
4843
|
const bundleFiles = Object.keys(bundle);
|
|
4805
4844
|
const activeViteCssCacheFiles = new Set(bundleFiles.map(normalizeViteCssCacheKey));
|
|
4806
|
-
const
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4845
|
+
const normalizeSystemAliasPathKey = (file) => file.startsWith("/private/var/") ? file.slice(8) : file;
|
|
4846
|
+
const normalizeConfiguredCssSourceCacheKey = (file) => normalizeSystemAliasPathKey(require_source_candidate_scan_signature.normalizeOutputPathKey(node_path.default.resolve(file.replace(/[?#].*$/, ""))));
|
|
4847
|
+
const runtimeTailwindcssOptions = require_generator.resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions);
|
|
4848
|
+
const tailwindRuntimeOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
|
|
4849
|
+
const configuredTailwindV4ExplicitCssEntryFiles = [...new Set([
|
|
4850
|
+
...Array.isArray(opts.cssEntries) ? opts.cssEntries : [],
|
|
4851
|
+
...Array.isArray(opts.tailwindcss?.v4?.cssEntries) ? opts.tailwindcss.v4.cssEntries : [],
|
|
4852
|
+
...Array.isArray(runtimeTailwindcssOptions?.v4?.cssEntries) ? runtimeTailwindcssOptions.v4.cssEntries : [],
|
|
4853
|
+
...Array.isArray(tailwindRuntimeOptions?.v4?.cssEntries) ? tailwindRuntimeOptions.v4.cssEntries : []
|
|
4854
|
+
].filter((file) => typeof file === "string" && file.length > 0))];
|
|
4855
|
+
const getConfiguredTailwindV4CssSourceEntries = () => {
|
|
4856
|
+
const collectedEntries = collectConfiguredTailwindV4CssSourceEntries({
|
|
4857
|
+
...opts,
|
|
4858
|
+
tailwindcssRuntimeOptions: {
|
|
4859
|
+
...opts.tailwindcssRuntimeOptions ?? {},
|
|
4860
|
+
tailwindcss: {
|
|
4861
|
+
...require_generator.resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions) ?? {},
|
|
4862
|
+
...require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options) ?? {}
|
|
4863
|
+
}
|
|
4813
4864
|
}
|
|
4814
|
-
}
|
|
4815
|
-
|
|
4865
|
+
}, opts.tailwindcssBasedir ?? rootDir);
|
|
4866
|
+
const cachedEntries = configuredTailwindV4ExplicitCssEntryFiles.flatMap((file) => {
|
|
4867
|
+
const resolvedFile = node_path.default.isAbsolute(file) ? node_path.default.resolve(file) : node_path.default.resolve(opts.tailwindcssBasedir ?? rootDir, file);
|
|
4868
|
+
const source = getCssSource(resolvedFile);
|
|
4869
|
+
return typeof source === "string" && source.length > 0 ? [{
|
|
4870
|
+
file: resolvedFile,
|
|
4871
|
+
source
|
|
4872
|
+
}] : [];
|
|
4873
|
+
});
|
|
4874
|
+
const cachedFileKeys = new Set(cachedEntries.map((entry) => normalizeConfiguredCssSourceCacheKey(entry.file)));
|
|
4875
|
+
return [...cachedEntries, ...collectedEntries.filter((entry) => !cachedFileKeys.has(normalizeConfiguredCssSourceCacheKey(entry.file)))];
|
|
4876
|
+
};
|
|
4816
4877
|
const normalizeGeneratorUserRawSource = (source, sourceFile, fallbackFile) => normalizeRelativeCssConfigDirectives(source, sourceFile || fallbackFile, outDir, opts);
|
|
4817
4878
|
const resolveMatchedCssSourceOutputFile = (sourceFile) => resolveOutputFileFromMatchedCssSource({
|
|
4818
4879
|
bundleFiles,
|
|
@@ -4833,20 +4894,12 @@ function createGenerateBundleHook(context) {
|
|
|
4833
4894
|
const snapshotStart = performance.now();
|
|
4834
4895
|
const snapshot = require_source_candidate_scan_signature.buildBundleSnapshot(bundle, opts, outDir, state, envFlags.disableDirtyOptimization || !useIncrementalMode, { hasOmittedKnownFiles });
|
|
4835
4896
|
const configuredTailwindV4CssSourceEntriesForScope = getConfiguredTailwindV4CssSourceEntries();
|
|
4836
|
-
const normalizeSystemAliasPathKey = (file) => file.startsWith("/private/var/") ? file.slice(8) : file;
|
|
4837
4897
|
const normalizeConfiguredTailwindV4CssEntryFileKey = (file) => {
|
|
4838
4898
|
const cleanFile = file.replace(/[?#].*$/, "");
|
|
4839
4899
|
return normalizeSystemAliasPathKey(require_source_candidate_scan_signature.normalizeOutputPathKey(node_path.default.isAbsolute(cleanFile) ? node_path.default.resolve(cleanFile) : node_path.default.resolve(opts.tailwindcssBasedir ?? rootDir, cleanFile)));
|
|
4840
4900
|
};
|
|
4841
|
-
const runtimeTailwindcssOptions = require_generator.resolveTailwindcssOptions(opts.tailwindcssRuntimeOptions);
|
|
4842
|
-
const tailwindRuntimeOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
|
|
4843
4901
|
const configuredTailwindV4CssSourceFileKeysForScope = new Set(configuredTailwindV4CssSourceEntriesForScope.map((entry) => normalizeConfiguredTailwindV4CssEntryFileKey(entry.file)));
|
|
4844
|
-
const configuredTailwindV4ExplicitCssEntryFileKeysForScope = new Set(
|
|
4845
|
-
...Array.isArray(opts.cssEntries) ? opts.cssEntries : [],
|
|
4846
|
-
...Array.isArray(opts.tailwindcss?.v4?.cssEntries) ? opts.tailwindcss.v4.cssEntries : [],
|
|
4847
|
-
...Array.isArray(runtimeTailwindcssOptions?.v4?.cssEntries) ? runtimeTailwindcssOptions.v4.cssEntries : [],
|
|
4848
|
-
...Array.isArray(tailwindRuntimeOptions?.v4?.cssEntries) ? tailwindRuntimeOptions.v4.cssEntries : []
|
|
4849
|
-
].filter((file) => typeof file === "string" && file.length > 0).map(normalizeConfiguredTailwindV4CssEntryFileKey));
|
|
4902
|
+
const configuredTailwindV4ExplicitCssEntryFileKeysForScope = new Set(configuredTailwindV4ExplicitCssEntryFiles.map(normalizeConfiguredTailwindV4CssEntryFileKey));
|
|
4850
4903
|
const isRootStyleOutputFile = (file) => {
|
|
4851
4904
|
const normalized = require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
|
|
4852
4905
|
return normalized.endsWith(".css") && !normalized.includes("/");
|
|
@@ -4876,9 +4929,11 @@ function createGenerateBundleHook(context) {
|
|
|
4876
4929
|
const selectConfiguredRootCssSourceEntry = (outputFile, entries, originalFileNames) => {
|
|
4877
4930
|
const matchedOriginalEntry = entries.find((entry) => originalFileNames?.some((originalFile) => normalizeConfiguredTailwindV4CssEntryFileKey(originalFile) === normalizeConfiguredTailwindV4CssEntryFileKey(entry.file)) === true);
|
|
4878
4931
|
if (matchedOriginalEntry && outputFile.replace(/[?#].*$/, "").endsWith(".css")) return matchedOriginalEntry;
|
|
4879
|
-
if (!shouldSelectConfiguredRootCssOutput(outputFile)) return;
|
|
4880
4932
|
const shouldRequireExplicitConfiguredEntry = !cssPipelineContext.currentGeneratorBranch.isWeb && opts.cssMatcher(outputFile) && isRootStyleOutputFile(outputFile);
|
|
4881
4933
|
const generationEntries = entries.filter((entry) => hasTailwindGenerationSource(entry.source) && (!shouldRequireExplicitConfiguredEntry || configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(entry.file))));
|
|
4934
|
+
const matchedOutputEntries = generationEntries.filter((entry) => require_source_candidate_scan_signature.normalizeOutputPathKey(resolveConfiguredTailwindV4CssEntryOutputFile(entry.file).replace(/[?#].*$/, "")) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile.replace(/[?#].*$/, "")));
|
|
4935
|
+
if (matchedOutputEntries.length === 1) return matchedOutputEntries[0];
|
|
4936
|
+
if (!shouldSelectConfiguredRootCssOutput(outputFile)) return;
|
|
4882
4937
|
if (generationEntries.length <= 1) return generationEntries[0];
|
|
4883
4938
|
const rootOutputEntries = generationEntries.filter((entry) => {
|
|
4884
4939
|
return !require_source_candidate_scan_signature.normalizeOutputPathKey(resolveConfiguredTailwindV4CssEntryOutputFile(entry.file).replace(/[?#].*$/, "")).includes("/");
|
|
@@ -5152,10 +5207,55 @@ function createGenerateBundleHook(context) {
|
|
|
5152
5207
|
metrics.css.total++;
|
|
5153
5208
|
const assetSourceFile = resolveAssetSourceFile(originalSource, file);
|
|
5154
5209
|
const rawSource = normalizeRelativeCssConfigDirectives(originalEntrySource, assetSourceFile, outDir, opts);
|
|
5210
|
+
const currentRawSourceHasExplicitScanContext = rawSource.includes("@source") || rawSource.includes("@config");
|
|
5155
5211
|
const cssPipelineContext = {
|
|
5156
5212
|
...createInitialCssPipelineContext(file),
|
|
5157
5213
|
bundle
|
|
5158
5214
|
};
|
|
5215
|
+
const rootImportShellOutputFile = resolveReplayCssOutputFile(outDir, originalSource.fileName || file);
|
|
5216
|
+
let rememberedFrameworkRootImportTarget = frameworkRootImportShellTargetByFile.get(rootImportShellOutputFile);
|
|
5217
|
+
const isCurrentFrameworkRootImportShell = shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
5218
|
+
css: rawSource,
|
|
5219
|
+
file: rootImportShellOutputFile,
|
|
5220
|
+
isWebGeneratorTarget,
|
|
5221
|
+
matchesCss: opts.cssMatcher(rootImportShellOutputFile) || opts.cssMatcher(file),
|
|
5222
|
+
shouldKeep: () => context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5223
|
+
...cssPipelineContext,
|
|
5224
|
+
css: rawSource,
|
|
5225
|
+
file: rootImportShellOutputFile
|
|
5226
|
+
})
|
|
5227
|
+
});
|
|
5228
|
+
if (isCurrentFrameworkRootImportShell) {
|
|
5229
|
+
const importedFile = resolveSingleCssImportOutputFile(rootImportShellOutputFile, rawSource);
|
|
5230
|
+
if (importedFile && isRootMiniProgramStyleOutputFile$1(importedFile)) frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, importedFile);
|
|
5231
|
+
}
|
|
5232
|
+
if (!rememberedFrameworkRootImportTarget && !isCurrentFrameworkRootImportShell && !isWebGeneratorTarget && isRootMiniProgramStyleOutputFile$1(rootImportShellOutputFile) && require_source_candidate_scan_signature.normalizeOutputPathKey(assetSourceFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(file) && opts.mainCssChunkMatcher(rootImportShellOutputFile, opts.appType) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5233
|
+
...cssPipelineContext,
|
|
5234
|
+
css: rawSource,
|
|
5235
|
+
file: rootImportShellOutputFile
|
|
5236
|
+
})) && !shouldMoveRootMiniProgramStyleToImportShellOrigin(context.cssPipelineStrategy?.shouldMoveRootMiniProgramStyleToImportShellOrigin?.({
|
|
5237
|
+
...cssPipelineContext,
|
|
5238
|
+
file: rootImportShellOutputFile
|
|
5239
|
+
}))) {
|
|
5240
|
+
const rootGeneratedTargets = /* @__PURE__ */ new Set();
|
|
5241
|
+
for (const entry of getConfiguredTailwindV4CssSourceEntries()) {
|
|
5242
|
+
const targetFile = resolveMatchedCssSourceOutputFile(entry.file);
|
|
5243
|
+
if (targetFile && isRootMiniProgramStyleOutputFile$1(targetFile) && require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile) !== require_source_candidate_scan_signature.normalizeOutputPathKey(rootImportShellOutputFile)) rootGeneratedTargets.add(targetFile);
|
|
5244
|
+
}
|
|
5245
|
+
for (const [, record] of getViteProcessedCssAssetResults?.() ?? []) {
|
|
5246
|
+
if (typeof record === "string" || record.injectIntoMain !== true || !record.outputFile) continue;
|
|
5247
|
+
const targetFile = resolveViteCssPipelineOutputFile(record.outputFile, opts, rootDir, isWebGeneratorTarget, shouldPreserveAppCssExtension, sourceRoot, defaultStyleOutputExtension, bundleFiles);
|
|
5248
|
+
if (isRootMiniProgramStyleOutputFile$1(targetFile) && require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile) !== require_source_candidate_scan_signature.normalizeOutputPathKey(rootImportShellOutputFile)) rootGeneratedTargets.add(targetFile);
|
|
5249
|
+
}
|
|
5250
|
+
if (rootGeneratedTargets.size === 1) {
|
|
5251
|
+
const [targetFile] = rootGeneratedTargets;
|
|
5252
|
+
if (targetFile) {
|
|
5253
|
+
rememberedFrameworkRootImportTarget = targetFile;
|
|
5254
|
+
frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, targetFile);
|
|
5255
|
+
debug("css remember framework root generated target: %s -> %s", rootImportShellOutputFile, targetFile);
|
|
5256
|
+
}
|
|
5257
|
+
}
|
|
5258
|
+
}
|
|
5159
5259
|
let outputFile = resolveCssBundleOutputFile({
|
|
5160
5260
|
bundleFiles,
|
|
5161
5261
|
cssPipelineStrategy: context.cssPipelineStrategy,
|
|
@@ -5166,6 +5266,14 @@ function createGenerateBundleHook(context) {
|
|
|
5166
5266
|
pipelineContext: cssPipelineContext,
|
|
5167
5267
|
shouldPreserveAppCssExtension
|
|
5168
5268
|
});
|
|
5269
|
+
if (rememberedFrameworkRootImportTarget && !isWebGeneratorTarget && (opts.cssMatcher(rootImportShellOutputFile) || opts.cssMatcher(file)) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5270
|
+
...cssPipelineContext,
|
|
5271
|
+
css: rawSource,
|
|
5272
|
+
file: rootImportShellOutputFile
|
|
5273
|
+
}))) {
|
|
5274
|
+
outputFile = rememberedFrameworkRootImportTarget;
|
|
5275
|
+
debug("css reuse framework root import shell target: %s -> %s", rootImportShellOutputFile, outputFile);
|
|
5276
|
+
}
|
|
5169
5277
|
const resolveMatchedOutputFileForCurrentAsset = createMatchedCssSourceOutputResolver({
|
|
5170
5278
|
assetSourceFile,
|
|
5171
5279
|
file,
|
|
@@ -5224,6 +5332,7 @@ function createGenerateBundleHook(context) {
|
|
|
5224
5332
|
return await refreshRememberedCssSource?.(remembered) ?? remembered;
|
|
5225
5333
|
}));
|
|
5226
5334
|
rememberedCssSources = rememberedCssSources.filter((remembered) => {
|
|
5335
|
+
if (currentRawSourceHasExplicitScanContext && !remembered.rawSource.includes("@source") && !remembered.rawSource.includes("@config")) return false;
|
|
5227
5336
|
if (hasExplicitConfiguredRootCssEntryForOutput(outputFile) && !configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile))) return false;
|
|
5228
5337
|
if (!configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile))) return true;
|
|
5229
5338
|
const matchedOutputFile = resolveMatchedOutputFileForCurrentAsset(remembered.sourceFile);
|
|
@@ -5243,7 +5352,7 @@ function createGenerateBundleHook(context) {
|
|
|
5243
5352
|
let outputCssHandlerOptions = getCssHandlerOptions(outputFile);
|
|
5244
5353
|
const configuredRootSourceStyle = resolveConfiguredRootCssSourceStyle(outputFile, getConfiguredTailwindV4CssSourceEntries(), originalSource.originalFileNames);
|
|
5245
5354
|
const hasExplicitRememberedRootSource = rememberedCssSources.some((remembered) => configuredTailwindV4ExplicitCssEntryFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(remembered.sourceFile)));
|
|
5246
|
-
if (configuredRootSourceStyle && (!hasUsableRememberedTailwindSource || !hasExplicitRememberedRootSource)) {
|
|
5355
|
+
if (configuredRootSourceStyle != null && (!currentRawSourceHasExplicitScanContext || hasTailwindGenerationSource(configuredRootSourceStyle.rawSource)) && (!hasUsableRememberedTailwindSource || !hasExplicitRememberedRootSource)) {
|
|
5247
5356
|
rememberedCssSources = [configuredRootSourceStyle];
|
|
5248
5357
|
hasUsableRememberedTailwindSource = true;
|
|
5249
5358
|
debug("source style source inferred from configured root tailwind v4 css source: %s -> %s", outputFile, configuredRootSourceStyle.sourceFile);
|
|
@@ -5358,6 +5467,7 @@ function createGenerateBundleHook(context) {
|
|
|
5358
5467
|
}
|
|
5359
5468
|
}
|
|
5360
5469
|
}
|
|
5470
|
+
if (currentRawSourceHasExplicitScanContext) rememberedCssSources = rememberedCssSources.filter((remembered) => remembered.rawSource.includes("@source") || remembered.rawSource.includes("@config"));
|
|
5361
5471
|
let rememberedCssSource = mergeRememberedCssSources(rememberedCssSources, outputFile);
|
|
5362
5472
|
if (rememberedCssSource && viteProcessedCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(rememberedCssSource.sourceFile))) {
|
|
5363
5473
|
const matchedOutputFile = resolveMatchedOutputFileForCurrentAsset(rememberedCssSource.sourceFile);
|
|
@@ -5371,6 +5481,17 @@ function createGenerateBundleHook(context) {
|
|
|
5371
5481
|
};
|
|
5372
5482
|
}
|
|
5373
5483
|
}
|
|
5484
|
+
if (!isWebGeneratorTarget && isRootMiniProgramStyleOutputFile$1(rootImportShellOutputFile) && isRootMiniProgramStyleOutputFile$1(outputFile) && require_source_candidate_scan_signature.normalizeOutputPathKey(rootImportShellOutputFile) !== require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile) && shouldKeepRootMiniProgramStyleAsImportShell(context.cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5485
|
+
...cssPipelineContext,
|
|
5486
|
+
css: rawSource,
|
|
5487
|
+
file: rootImportShellOutputFile
|
|
5488
|
+
})) && !shouldMoveRootMiniProgramStyleToImportShellOrigin(context.cssPipelineStrategy?.shouldMoveRootMiniProgramStyleToImportShellOrigin?.({
|
|
5489
|
+
...cssPipelineContext,
|
|
5490
|
+
file: rootImportShellOutputFile
|
|
5491
|
+
}))) {
|
|
5492
|
+
frameworkRootImportShellTargetByFile.set(rootImportShellOutputFile, outputFile);
|
|
5493
|
+
debug("css remember framework root import shell target: %s -> %s", rootImportShellOutputFile, outputFile);
|
|
5494
|
+
}
|
|
5374
5495
|
const shouldKeepImportedCssShell = isCssImportOnlyBundleAsset(bundle, file, rawSource);
|
|
5375
5496
|
const useRememberedCssSource = !shouldKeepImportedCssShell && rememberedCssSource != null && (require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.sourceFile) !== require_source_candidate_scan_signature.normalizeOutputPathKey(file) || !hasTailwindGenerationSource(rawSource) && hasTailwindGenerationSource(rememberedCssSource.rawSource));
|
|
5376
5497
|
const vitePipelineCssAsset = viteProcessedCssAsset || useRememberedCssSource;
|
|
@@ -5391,6 +5512,8 @@ function createGenerateBundleHook(context) {
|
|
|
5391
5512
|
const hasSameOutputRememberedTailwindGenerationSource = hasRememberedTailwindGenerationSource && rememberedCssSource != null && require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile);
|
|
5392
5513
|
const hasStaleViteProcessedCssSource = vitePipelineCssAsset && hasDifferentRememberedCssSource && (hasCurrentTailwindGenerationDirective || hasRememberedApplyDirective || hasRememberedTailwindGenerationSource);
|
|
5393
5514
|
const generatorSourceFile = vitePipelineCssAsset ? rememberedCssSource?.sourceFile ?? assetSourceFile : assetSourceFile;
|
|
5515
|
+
const originalGeneratorLayerSource = vitePipelineCssAsset ? getOriginalCssLayerSource?.(generatorSourceFile) : void 0;
|
|
5516
|
+
const generatorUserLayerRawSource = originalGeneratorLayerSource && normalizeCssSourceForCompare(originalGeneratorLayerSource) !== normalizeCssSourceForCompare(generatorRawSource) && require_generator.hasUserCssLayerBlocks(originalGeneratorLayerSource) ? normalizeMiniProgramGeneratorRawSource(normalizeGeneratorUserRawSource(originalGeneratorLayerSource, generatorSourceFile, assetSourceFile), outputFile) : void 0;
|
|
5394
5517
|
const webviewRootCssInjectionTarget = vitePipelineCssAsset ? resolveConfiguredCssEntryRootInjectionTarget(generatorSourceFile, outputFile) : void 0;
|
|
5395
5518
|
const usesConfiguredTailwindV4FallbackSource = rememberedCssSource != null && require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile) && require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.sourceFile.replace(/[?#].*$/, "")) !== require_source_candidate_scan_signature.normalizeOutputPathKey(file);
|
|
5396
5519
|
if (vitePipelineCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(normalizeConfiguredTailwindV4CssEntryFileKey(generatorSourceFile))) {
|
|
@@ -5521,7 +5644,10 @@ function createGenerateBundleHook(context) {
|
|
|
5521
5644
|
const previousCss = !vitePipelineCssAsset && useIncrementalMode && !generatorCandidatesChanged && !hasRuntimeAffectingChanges && !snapshot.changedByType.css.has(file) ? getLastCssResult(lastCssResultByFile, outputFile, file) : void 0;
|
|
5522
5645
|
const generatorTransformRawSource = generatorRawSource;
|
|
5523
5646
|
const previousGeneratorCss = previousCss && !isWebGeneratorTarget ? normalizeMiniProgramGeneratorRawSource(previousCss, outputFile) : previousCss;
|
|
5524
|
-
const
|
|
5647
|
+
const shouldGenerateCssWithCore = hasTailwindGenerationSource(generatorTransformRawSource) || require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(rawSource);
|
|
5648
|
+
const bundleUserRawSource = vitePipelineCssAsset && !require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(rawSource) && normalizeCssSourceForCompare(rawSource) !== normalizeCssSourceForCompare(generatorRawSource) ? normalizeMiniProgramGeneratorRawSource(normalizeGeneratorUserRawSource(rawSource, generatorSourceFile, assetSourceFile), outputFile) : void 0;
|
|
5649
|
+
const generatorUserRawSource = [generatorUserLayerRawSource, bundleUserRawSource].filter((source) => typeof source === "string" && source.trim().length > 0).join("\n");
|
|
5650
|
+
const generated = shouldGenerateCssWithCore ? await require_source_candidate_scan_signature.generateTailwindV4Css({
|
|
5525
5651
|
opts,
|
|
5526
5652
|
runtimeState,
|
|
5527
5653
|
runtime: scopedGeneratorRuntime,
|
|
@@ -5536,7 +5662,7 @@ function createGenerateBundleHook(context) {
|
|
|
5536
5662
|
styleHandler,
|
|
5537
5663
|
debug,
|
|
5538
5664
|
previousCss: previousGeneratorCss,
|
|
5539
|
-
...
|
|
5665
|
+
...generatorUserRawSource ? { userRawSource: generatorUserRawSource } : {},
|
|
5540
5666
|
...usesConfiguredTailwindV4FallbackSource ? { restoreLocalCssImports: false } : {}
|
|
5541
5667
|
}) : void 0;
|
|
5542
5668
|
if (generated) {
|
|
@@ -5634,6 +5760,8 @@ function createGenerateBundleHook(context) {
|
|
|
5634
5760
|
cache,
|
|
5635
5761
|
changedCssFiles: snapshot.changedByType.css,
|
|
5636
5762
|
cssTaskFactories,
|
|
5763
|
+
cssPipelineContext,
|
|
5764
|
+
cssPipelineStrategy: context.cssPipelineStrategy,
|
|
5637
5765
|
createScopedGeneratorRuntime: createScopedGeneratorRuntime$1,
|
|
5638
5766
|
createScopedSourceCandidateGetter,
|
|
5639
5767
|
createScopedSourceCandidateSourceGetter,
|
|
@@ -5798,7 +5926,7 @@ function createViteCssFinalizerOutputPlugin(context) {
|
|
|
5798
5926
|
generateBundle: {
|
|
5799
5927
|
order: "post",
|
|
5800
5928
|
async handler(_options, bundle) {
|
|
5801
|
-
const { opts, runtimeState, ensureRuntimeClassSet, cssPipelineStrategy, isCssAssetProcessed, markCssAssetProcessed, debug, getResolvedConfig, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getRecordedGeneratorCandidates, getSourceCandidates, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberMainCssSource, getRememberedMainCssSource, isViteProcessedCssAsset } = context;
|
|
5929
|
+
const { opts, runtimeState, ensureRuntimeClassSet, cssPipelineStrategy, isCssAssetProcessed, markCssAssetProcessed, debug, getResolvedConfig, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getRecordedGeneratorCandidates, getSourceCandidates, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberMainCssSource, getRememberedMainCssSource, isViteProcessedCssAsset, frameworkRootImportShellTargetByFile } = context;
|
|
5802
5930
|
const resolvedConfig = getResolvedConfig();
|
|
5803
5931
|
const uniUtsPlatform = require_generator.resolveUniUtsPlatform();
|
|
5804
5932
|
const generatorPlatform = opts.cssOptions?.platform ?? opts.platform ?? inferPlatformFromViteOutDir(resolvedConfig?.build?.outDir);
|
|
@@ -5831,6 +5959,19 @@ function createViteCssFinalizerOutputPlugin(context) {
|
|
|
5831
5959
|
const rootDir = resolvedConfig?.root ? node_path.default.resolve(resolvedConfig.root) : node_process.default.cwd();
|
|
5832
5960
|
const outDir = resolvedConfig?.build?.outDir ? node_path.default.resolve(rootDir, resolvedConfig.build.outDir) : rootDir;
|
|
5833
5961
|
const sourceRoot = resolveWeappViteSourceRoot(resolvedConfig, opts.appType) ?? resolveSourceRootFromBundleGraph(resolvedConfig, bundle);
|
|
5962
|
+
restoreFrameworkRootMiniProgramImportShellAssets(bundle, {
|
|
5963
|
+
debug,
|
|
5964
|
+
isWebGeneratorTarget,
|
|
5965
|
+
matchesCss: opts.cssMatcher,
|
|
5966
|
+
onUpdate: opts.onUpdate,
|
|
5967
|
+
recordCssAssetResult,
|
|
5968
|
+
shouldKeep: (file, css) => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
5969
|
+
...createCssPipelineContext(file),
|
|
5970
|
+
css,
|
|
5971
|
+
file
|
|
5972
|
+
}),
|
|
5973
|
+
targetByFile: frameworkRootImportShellTargetByFile ?? /* @__PURE__ */ new Map()
|
|
5974
|
+
});
|
|
5834
5975
|
const sourceTraceTokenSources = getSourceCandidateSourcesForEntries ? require_hmr_timing.createCssTokenSourceMap(getSourceCandidateSourcesForEntries(void 0), opts) : void 0;
|
|
5835
5976
|
const annotateCss = (css) => require_hmr_timing.annotateCssSourceTrace(css, {
|
|
5836
5977
|
opts,
|
|
@@ -6825,6 +6966,22 @@ function createViteServeJsTransformPlugin(options) {
|
|
|
6825
6966
|
};
|
|
6826
6967
|
}
|
|
6827
6968
|
//#endregion
|
|
6969
|
+
//#region src/bundlers/vite/serve-root-import-shell.ts
|
|
6970
|
+
function resolveViteServeRootMiniProgramImportShell(options) {
|
|
6971
|
+
const { css, cssPipelineContext, cssPipelineStrategy, isWebGeneratorTarget, outputFile } = options;
|
|
6972
|
+
return shouldPreserveFrameworkRootMiniProgramImportShell({
|
|
6973
|
+
css,
|
|
6974
|
+
file: outputFile,
|
|
6975
|
+
isWebGeneratorTarget,
|
|
6976
|
+
matchesCss: cssPipelineContext.opts?.cssMatcher?.(outputFile) ?? true,
|
|
6977
|
+
shouldKeep: () => cssPipelineStrategy?.shouldKeepRootMiniProgramStyleAsImportShell?.({
|
|
6978
|
+
...cssPipelineContext,
|
|
6979
|
+
css,
|
|
6980
|
+
file: outputFile
|
|
6981
|
+
})
|
|
6982
|
+
}) ? require_hmr_timing.normalizeMiniProgramImportShell(css) : void 0;
|
|
6983
|
+
}
|
|
6984
|
+
//#endregion
|
|
6828
6985
|
//#region src/bundlers/vite/tailwind-basedir.ts
|
|
6829
6986
|
const PACKAGE_JSON_FILE = "package.json";
|
|
6830
6987
|
function resolveImplicitTailwindcssBasedirFromViteRoot(root) {
|
|
@@ -6977,6 +7134,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
6977
7134
|
cssEntries: opts.cssEntries ?? rawOptions.cssEntries
|
|
6978
7135
|
});
|
|
6979
7136
|
const autoCssSourceContent = /* @__PURE__ */ new Map();
|
|
7137
|
+
const frameworkRootImportShellTargetByFile = /* @__PURE__ */ new Map();
|
|
6980
7138
|
const transientAutoCssSources = /* @__PURE__ */ new Map();
|
|
6981
7139
|
let refreshRuntimeStateForAutoCssSources;
|
|
6982
7140
|
let autoCssSourcesRefresh;
|
|
@@ -7053,7 +7211,21 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7053
7211
|
};
|
|
7054
7212
|
const customAttributesEntities = require_context.toCustomAttributesEntities(customAttributes);
|
|
7055
7213
|
let recordedGeneratorCandidates;
|
|
7056
|
-
const sourceCandidateCollector = require_hmr_timing.createSourceCandidateCollector({
|
|
7214
|
+
const sourceCandidateCollector = require_hmr_timing.createSourceCandidateCollector({
|
|
7215
|
+
bareArbitraryValues: opts.arbitraryValues?.bareArbitraryValues,
|
|
7216
|
+
customAttributesEntities,
|
|
7217
|
+
disabledDefaultTemplateHandler
|
|
7218
|
+
});
|
|
7219
|
+
const originalCssLayerSourceByFile = new lru_cache.LRUCache({ max: 128 });
|
|
7220
|
+
const rememberOriginalCssLayerSource = (id, code) => {
|
|
7221
|
+
const file = (0, _weapp_tailwindcss_shared.cleanUrl)(id);
|
|
7222
|
+
if (!require_source_candidate_scan_signature.isCSSRequest(file)) return;
|
|
7223
|
+
if (!require_generator.hasUserCssLayerBlocks(code)) {
|
|
7224
|
+
originalCssLayerSourceByFile.delete(file);
|
|
7225
|
+
return;
|
|
7226
|
+
}
|
|
7227
|
+
originalCssLayerSourceByFile.set(file, require_generator.splitUserCssLayerBlocks(code).layer);
|
|
7228
|
+
};
|
|
7057
7229
|
const sourceCandidateScanCache = new lru_cache.LRUCache({ max: SOURCE_CANDIDATE_SCAN_CACHE_MAX });
|
|
7058
7230
|
let sourceScanEntries;
|
|
7059
7231
|
let sourceScanMatcher;
|
|
@@ -7129,7 +7301,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7129
7301
|
let pendingHmrCandidateChange;
|
|
7130
7302
|
let pendingHmrCssTargetFiles;
|
|
7131
7303
|
let pendingFullHmrCssRegeneration = false;
|
|
7132
|
-
const
|
|
7304
|
+
const normalizeGeneratedCssCacheFile = (file) => normalizeVitePersistentCacheKey((0, _weapp_tailwindcss_shared.cleanUrl)(file));
|
|
7305
|
+
const normalizeHmrCssTargetFile = normalizeGeneratedCssCacheFile;
|
|
7133
7306
|
const collectPendingHmrCssTargetFiles = (cssModules, fallbackCssIds) => {
|
|
7134
7307
|
const targets = /* @__PURE__ */ new Set();
|
|
7135
7308
|
const addTarget = (file) => {
|
|
@@ -7202,7 +7375,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7202
7375
|
return change;
|
|
7203
7376
|
};
|
|
7204
7377
|
const resolvePendingHmrCandidateChange = (generatorCode, file) => {
|
|
7205
|
-
|
|
7378
|
+
const fileKey = normalizeGeneratedCssCacheFile(file);
|
|
7379
|
+
if (resolvedConfig?.command !== "serve" || !pendingHmrCandidateChange || pendingHmrCandidateChange.runtimeAffecting || pendingHmrCandidateChange.addedCandidates.size === 0 || resolveCurrentGeneratorOptions().target === "weapp" && require_generator.hasUserCssLayerBlocks(generatorCode) || !cleanGeneratedCssByFile.has(fileKey) || !generatedClassSetByFile.has(fileKey) || pendingHmrCssTargetFiles !== void 0 && !pendingHmrCssTargetFiles.has(fileKey)) return;
|
|
7206
7380
|
return pendingHmrCandidateChange;
|
|
7207
7381
|
};
|
|
7208
7382
|
const finishPendingHmrCssTargetFile = (file) => {
|
|
@@ -7456,12 +7630,41 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7456
7630
|
const sourceRoot = resolveWeappViteSourceRoot(resolvedConfig, opts.appType);
|
|
7457
7631
|
const outputFile = resolveViteCssPipelineOutputFile(requestFile, opts, rootDir, currentGeneratorBranch.isWeb, shouldPreserveStyleOutputExtension, sourceRoot);
|
|
7458
7632
|
const generatorTransformCode = currentGeneratorBranch.isWeb ? generatorCode : require_hmr_timing.normalizeMiniProgramGeneratorCssSource(generatorCode, outputFile);
|
|
7633
|
+
const fileKey = normalizeGeneratedCssCacheFile(file);
|
|
7459
7634
|
const fullRuntime = getSourceCandidates() ?? getRecordedGeneratorCandidates() ?? await ensureRuntimeClassSet();
|
|
7460
7635
|
const pendingHmrChange = resolvePendingHmrCandidateChange(generatorCode, file);
|
|
7461
7636
|
const forceFullHmrCssRegeneration = pendingFullHmrCssRegeneration || resolvedConfig?.command === "serve" && pendingHmrCandidateChange !== void 0 && pendingHmrChange === void 0;
|
|
7462
7637
|
const runtime = fullRuntime;
|
|
7638
|
+
const importShellCss = resolveViteServeRootMiniProgramImportShell({
|
|
7639
|
+
css: generatorTransformCode,
|
|
7640
|
+
cssPipelineContext,
|
|
7641
|
+
cssPipelineStrategy: frameworkCssPipelineStrategy,
|
|
7642
|
+
isWebGeneratorTarget: currentGeneratorBranch.isWeb,
|
|
7643
|
+
outputFile
|
|
7644
|
+
});
|
|
7645
|
+
if (importShellCss !== void 0) {
|
|
7646
|
+
cleanGeneratedCssByFile.set(fileKey, importShellCss);
|
|
7647
|
+
tracedGeneratedCssByFile.set(fileKey, importShellCss);
|
|
7648
|
+
generatedClassSetByFile.set(fileKey, /* @__PURE__ */ new Set());
|
|
7649
|
+
recordViteProcessedCssAssetResult(file, importShellCss, {
|
|
7650
|
+
injectIntoMain: false,
|
|
7651
|
+
outputFile
|
|
7652
|
+
});
|
|
7653
|
+
markViteProcessedCssSource(file);
|
|
7654
|
+
rememberTailwindRootCssModule(id);
|
|
7655
|
+
recordGeneratorCandidates(fullRuntime);
|
|
7656
|
+
if (pendingHmrChange) finishPendingHmrCssTargetFile(file);
|
|
7657
|
+
else if (!pendingHmrCandidateChange) clearPendingHmrCandidateChange();
|
|
7658
|
+
cssMemory.rememberCssSource({
|
|
7659
|
+
outputFile,
|
|
7660
|
+
rawSource: code,
|
|
7661
|
+
sourceFile: requestFile
|
|
7662
|
+
});
|
|
7663
|
+
debug("css preserved root mini-program import shell for vite postcss pipeline: %s bytes=%d", requestFile, importShellCss.length);
|
|
7664
|
+
return importShellCss;
|
|
7665
|
+
}
|
|
7463
7666
|
if (pendingHmrChange && currentGeneratorOptions.target === "weapp" && require_generator.filterUnsupportedMiniProgramTailwindV4Candidates(pendingHmrChange.addedCandidates).size === 0) {
|
|
7464
|
-
const previousTracedCss = tracedGeneratedCssByFile.get(
|
|
7667
|
+
const previousTracedCss = tracedGeneratedCssByFile.get(fileKey);
|
|
7465
7668
|
if (previousTracedCss !== void 0) {
|
|
7466
7669
|
finishPendingHmrCssTargetFile(file);
|
|
7467
7670
|
return `${require_source_candidate_scan_signature.createBundlerGeneratedCssMarker("vite", normalizeViteProcessedCssFile(file))}\n${previousTracedCss}`;
|
|
@@ -7483,6 +7686,8 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7483
7686
|
cssHandlerOptions,
|
|
7484
7687
|
generatorCode: generatorTransformCode
|
|
7485
7688
|
}) ?? true);
|
|
7689
|
+
const previousCss = pendingHmrChange && !forceFullHmrCssRegeneration ? cleanGeneratedCssByFile.get(fileKey) : void 0;
|
|
7690
|
+
const previousGeneratorCss = previousCss && !currentGeneratorBranch.isWeb ? require_hmr_timing.normalizeMiniProgramGeneratorCssSource(previousCss, outputFile) : previousCss;
|
|
7486
7691
|
const generated = await hmrTimingRecorder.measure("generateCss.serve", () => require_source_candidate_scan_signature.generateTailwindV4Css({
|
|
7487
7692
|
opts,
|
|
7488
7693
|
runtimeState,
|
|
@@ -7497,13 +7702,15 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7497
7702
|
generatorPlatform: resolveGeneratorPlatform(),
|
|
7498
7703
|
styleHandler,
|
|
7499
7704
|
debug,
|
|
7705
|
+
previousCss: previousGeneratorCss,
|
|
7706
|
+
previousClassSet: pendingHmrChange && !forceFullHmrCssRegeneration ? generatedClassSetByFile.get(fileKey) : void 0,
|
|
7500
7707
|
deferEmptyScopedCssSource: shouldDeferEmptyScopedCssSource,
|
|
7501
7708
|
disableSourceScan: false,
|
|
7502
7709
|
restoreLocalCssImports: !currentGeneratorBranch.isWeb
|
|
7503
7710
|
}), {
|
|
7504
7711
|
file,
|
|
7505
7712
|
memoryDebug: {
|
|
7506
|
-
cleanCacheHit: cleanGeneratedCssByFile.has(
|
|
7713
|
+
cleanCacheHit: cleanGeneratedCssByFile.has(fileKey),
|
|
7507
7714
|
forceFullHmrCssRegeneration,
|
|
7508
7715
|
pendingAddedCandidates: pendingHmrCandidateChange?.addedCandidates.size ?? 0,
|
|
7509
7716
|
pendingCssTargets: pendingHmrCssTargetFiles?.size ?? 0,
|
|
@@ -7530,9 +7737,9 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7530
7737
|
tokenSources: require_hmr_timing.createCssTokenSourceMap(getSourceCandidateSourcesForEntries(void 0), opts)
|
|
7531
7738
|
});
|
|
7532
7739
|
for (const dependency of generated.dependencies) hookContext?.addWatchFile?.(dependency);
|
|
7533
|
-
cleanGeneratedCssByFile.set(
|
|
7534
|
-
tracedGeneratedCssByFile.set(
|
|
7535
|
-
generatedClassSetByFile.set(
|
|
7740
|
+
cleanGeneratedCssByFile.set(fileKey, outputCss);
|
|
7741
|
+
tracedGeneratedCssByFile.set(fileKey, tracedCss);
|
|
7742
|
+
generatedClassSetByFile.set(fileKey, new Set(generated.classSet));
|
|
7536
7743
|
const shouldInjectGeneratedCssIntoMain = mainCssChunkMatcher(outputFile, opts.appType) || require_generator.hasTailwindRootDirectives(generatorTransformCode, { importFallback: currentGeneratorOptions.importFallback }) && !require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile).includes("/");
|
|
7537
7744
|
recordViteProcessedCssAssetResult(file, tracedCss, {
|
|
7538
7745
|
injectIntoMain: shouldInjectGeneratedCssIntoMain,
|
|
@@ -7600,11 +7807,13 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7600
7807
|
setRememberedCssSignature: cssMemory.setRememberedCssSignature,
|
|
7601
7808
|
getKnownCssSource: cssMemory.getKnownCssSource,
|
|
7602
7809
|
getKnownSfcSource: cssMemory.getKnownSfcSource,
|
|
7810
|
+
getOriginalCssLayerSource: (file) => originalCssLayerSourceByFile.get((0, _weapp_tailwindcss_shared.cleanUrl)(file)),
|
|
7603
7811
|
recordGeneratorCandidates,
|
|
7604
7812
|
pruneViteCssCaches,
|
|
7605
7813
|
getViteCssCacheStats,
|
|
7606
7814
|
hmrTimingRecorder,
|
|
7607
|
-
cssPipelineStrategy: frameworkCssPipelineStrategy
|
|
7815
|
+
cssPipelineStrategy: frameworkCssPipelineStrategy,
|
|
7816
|
+
frameworkRootImportShellTargetByFile
|
|
7608
7817
|
});
|
|
7609
7818
|
const cssFinalizerOutputPlugin = createViteCssFinalizerOutputPlugin({
|
|
7610
7819
|
opts,
|
|
@@ -7624,6 +7833,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7624
7833
|
getSourceCandidatesForEntries,
|
|
7625
7834
|
getSourceCandidateSourcesForEntries,
|
|
7626
7835
|
waitForSourceCandidateSyncs,
|
|
7836
|
+
frameworkRootImportShellTargetByFile,
|
|
7627
7837
|
rememberMainCssSource: (file, rawSource) => cssMemory.rememberCssSource({
|
|
7628
7838
|
outputFile: file,
|
|
7629
7839
|
rawSource,
|
|
@@ -7659,6 +7869,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7659
7869
|
if (!shouldOwnTailwindGeneration || isWebOrNativeAppPlatform(resolveViteStylePlatform()) || !require_source_candidate_scan_signature.isCSSRequest(id) || !shouldCollectTransformedSourceCandidates(id)) return;
|
|
7660
7870
|
const rawCode = await (0, node_fs_promises.readFile)((0, _weapp_tailwindcss_shared.cleanUrl)(id), "utf8").catch(() => void 0);
|
|
7661
7871
|
if (typeof rawCode !== "string") return;
|
|
7872
|
+
rememberOriginalCssLayerSource(id, rawCode);
|
|
7662
7873
|
const transformedCode = transformEarlyMiniProgramCss(rawCode);
|
|
7663
7874
|
if (transformedCode === rawCode) return;
|
|
7664
7875
|
cssMemory.rememberKnownSfcSource(id, transformedCode);
|
|
@@ -7667,6 +7878,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7667
7878
|
transform: {
|
|
7668
7879
|
order: "pre",
|
|
7669
7880
|
async handler(code, id) {
|
|
7881
|
+
if (require_generator.hasUserCssLayerBlocks(code)) rememberOriginalCssLayerSource(id, code);
|
|
7670
7882
|
let transformedCode = code;
|
|
7671
7883
|
if (shouldOwnTailwindGeneration && !resolveCurrentGeneratorBranch().isWeb && require_source_candidate_scan_signature.isCSSRequest(id)) transformedCode = transformEarlyMiniProgramCss(code);
|
|
7672
7884
|
const shouldReturnTransformedCode = transformedCode !== code;
|
|
@@ -7722,6 +7934,7 @@ function createViteFrameworkPlugins(options = {}, frameworkBranch) {
|
|
|
7722
7934
|
}
|
|
7723
7935
|
const canReadHotSource = typeof ctx.read === "function";
|
|
7724
7936
|
const hotSource = isSourceCandidateHotUpdate && canReadHotSource ? await ctx.read().catch(() => void 0) : void 0;
|
|
7937
|
+
if (typeof hotSource === "string" && require_source_candidate_scan_signature.isCSSRequest(ctx.file)) rememberOriginalCssLayerSource(ctx.file, hotSource);
|
|
7725
7938
|
const sourceCandidateChange = await syncChangedSourceCandidateFile(ctx.file, hotSource);
|
|
7726
7939
|
const isWebLikeHotUpdate = isCurrentWebLikeStylePlatform();
|
|
7727
7940
|
let canUseHmrCandidateAppend = false;
|