weapp-tailwindcss 5.1.14 → 5.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-2dg_uhEJ.mjs +13 -0
- package/dist/bundlers/gulp/frameworks/native/index.d.ts +2 -0
- package/dist/bundlers/gulp/index.d.ts +2 -0
- package/dist/bundlers/gulp/shared/create-native-framework-plugins.d.ts +2 -0
- package/dist/bundlers/shared/generated-css-marker.d.ts +2 -2
- package/dist/bundlers/shared/generator-css/local-imports.d.ts +1 -1
- package/dist/bundlers/shared/generator-css/source-resolver/postcss-source.d.ts +2 -0
- package/dist/bundlers/shared/generator-css/types.d.ts +5 -0
- package/dist/bundlers/shared/style-requests.d.ts +1 -0
- package/dist/bundlers/vite/bundle-state.d.ts +1 -0
- package/dist/bundlers/vite/generate-bundle/bundle-markup-candidates.d.ts +20 -0
- package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +1 -0
- package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +1 -0
- package/dist/bundlers/vite/generate-bundle/sfc-style-source.d.ts +2 -1
- package/dist/bundlers/vite/generate-bundle/source-candidate-source.d.ts +1 -0
- package/dist/bundlers/vite/generate-bundle/types.d.ts +5 -0
- package/dist/bundlers/vite/serve-css-generation.d.ts +3 -2
- package/dist/bundlers/vite/shared/create-framework-plugins.d.ts +1 -0
- package/dist/bundlers/vite/watch-css-post.d.ts +10 -0
- package/dist/bundlers/webpack/BaseUnifiedPlugin/shared.d.ts +6 -0
- package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/css-source-resolvers.d.ts +1 -0
- package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +2 -0
- package/dist/bundlers/webpack/loaders/runtime-registry.d.ts +1 -0
- package/dist/bundlers/webpack/loaders/weapp-tw-css-generation-loader.d.ts +4 -0
- package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +3 -0
- package/dist/{context-BL8Gy71H.mjs → context-BgGWVAmN.mjs} +2 -2
- package/dist/core.mjs +1 -1
- package/dist/css-macro.mjs +1 -1
- package/dist/{generator-B59OA64h.mjs → generator-CEo920So.mjs} +1 -1
- package/dist/generator.mjs +1 -1
- package/dist/{gulp-C1Q3LRzg.js → gulp-3m1dAiig.js} +84 -50
- package/dist/{gulp-DUYWxmZC.mjs → gulp-DP71z1jG.mjs} +87 -53
- package/dist/gulp.js +1 -1
- package/dist/gulp.mjs +1 -1
- package/dist/{hmr-timing-C3ed5vCx.mjs → hmr-timing-1aS6--U7.mjs} +170 -44
- package/dist/{hmr-timing-BZ5sWIqO.js → hmr-timing-B8p4f0ca.js} +219 -39
- package/dist/index.js +3 -3
- package/dist/index.mjs +4 -4
- package/dist/postcss.mjs +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/rspack.js +1 -1
- package/dist/rspack.mjs +1 -1
- package/dist/shared/mpx.d.ts +4 -1
- package/dist/{source-candidate-scan-signature-R3dzamcm.js → source-candidate-scan-signature-BAahhiwb.js} +4 -96
- package/dist/{source-candidate-scan-signature-D7RWjWsY.mjs → source-candidate-scan-signature-Cf7259PR.mjs} +6 -62
- package/dist/{tailwindcss-DPcKMLxL.mjs → tailwindcss-xs704TRw.mjs} +1 -1
- package/dist/{transform-D5JUgMpE.mjs → transform-B_KM9sLX.mjs} +47 -5
- package/dist/{transform-COFRlmDF.js → transform-CcYptivi.js} +47 -5
- package/dist/uni-app-x/component-local-style.d.ts +1 -0
- package/dist/uni-app-x/style-asset/style-value.d.ts +1 -1
- package/dist/{vite-BNlPdsGM.js → vite-DUVjMduj.js} +550 -273
- package/dist/{vite-CBU5NXTX.mjs → vite-nXZEiwG0.mjs} +501 -224
- package/dist/vite.js +1 -1
- package/dist/vite.mjs +1 -1
- package/dist/weapp-tw-css-generation-loader.js +12 -0
- package/dist/weapp-tw-css-import-rewrite-loader-DNk0IxAt.js +10198 -0
- package/dist/weapp-tw-css-import-rewrite-loader.js +6 -10255
- package/dist/{webpack-CZ38fMGC.mjs → webpack-C_UUFRgj.mjs} +223 -57
- package/dist/{webpack-Jpe048pQ.js → webpack-nppysF4B.js} +232 -66
- package/dist/webpack.js +1 -1
- package/dist/webpack.mjs +1 -1
- package/package.json +11 -3
- package/dist/auto-CrJJc5rK.mjs +0 -13
|
@@ -5,8 +5,8 @@ const require_utils = require("./utils-CuKLf1Zv.js");
|
|
|
5
5
|
const require_wxml = require("./wxml-Ce10eREX.js");
|
|
6
6
|
const require_context = require("./context-VeFq_8vW.js");
|
|
7
7
|
const require_defaults = require("./defaults.js");
|
|
8
|
-
const require_hmr_timing = require("./hmr-timing-
|
|
9
|
-
const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-
|
|
8
|
+
const require_hmr_timing = require("./hmr-timing-B8p4f0ca.js");
|
|
9
|
+
const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BAahhiwb.js");
|
|
10
10
|
let node_fs = require("node:fs");
|
|
11
11
|
node_fs = require_rolldown_runtime.__toESM(node_fs);
|
|
12
12
|
let node_path = require("node:path");
|
|
@@ -27,13 +27,13 @@ function getCacheKey(filename) {
|
|
|
27
27
|
}
|
|
28
28
|
function stripResourceQuery(resource) {
|
|
29
29
|
if (typeof resource !== "string") return resource;
|
|
30
|
-
return
|
|
30
|
+
return require_hmr_timing.stripRequestQuery(resource);
|
|
31
31
|
}
|
|
32
32
|
function isCssLikeModuleResource(resource, cssMatcher) {
|
|
33
33
|
if (typeof resource !== "string") return false;
|
|
34
34
|
const normalizedResource = stripResourceQuery(resource);
|
|
35
35
|
if (normalizedResource && cssMatcher(normalizedResource)) return true;
|
|
36
|
-
if (
|
|
36
|
+
if (require_hmr_timing.isSourceStyleRequest(resource)) return true;
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
39
39
|
function hasLoaderEntry(entries, target) {
|
|
@@ -73,17 +73,27 @@ function resolveSingleActiveWebpackCssResource(assetResources, activeWebpackAsse
|
|
|
73
73
|
const activeAssetResourceMatches = [...assetResources ?? []].map((sourceFile) => node_path.default.resolve(sourceFile)).filter((sourceFile) => activeWebpackAssetResourceFiles.has(sourceFile)).sort();
|
|
74
74
|
return activeAssetResourceMatches.length === 1 ? activeAssetResourceMatches[0] : void 0;
|
|
75
75
|
}
|
|
76
|
-
function
|
|
76
|
+
function resolveWebpackCssModuleIdentifierResource(module) {
|
|
77
|
+
if (!module.type?.startsWith("css/") || typeof module.identifier !== "function") return;
|
|
78
|
+
const identifier = module.identifier();
|
|
79
|
+
const request = identifier.startsWith("css|") ? identifier.slice(4) : identifier;
|
|
80
|
+
const resourceWithMetadata = request.slice(request.lastIndexOf("!") + 1);
|
|
81
|
+
const metadataIndex = resourceWithMetadata.indexOf("|");
|
|
82
|
+
return metadataIndex === -1 ? resourceWithMetadata : resourceWithMetadata.slice(0, metadataIndex);
|
|
83
|
+
}
|
|
84
|
+
function createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, onlyUnambiguousCssAssets) {
|
|
77
85
|
const resourcesByAsset = /* @__PURE__ */ new Map();
|
|
78
86
|
if (!chunkGraph?.getChunkModulesIterable) return resourcesByAsset;
|
|
79
87
|
const collectModuleResources = (module, resources, seen = /* @__PURE__ */ new Set()) => {
|
|
80
88
|
if (!module || seen.has(module)) return;
|
|
81
89
|
seen.add(module);
|
|
82
|
-
|
|
90
|
+
const candidates = [
|
|
83
91
|
module.resource,
|
|
84
92
|
module.request,
|
|
85
93
|
module.userRequest
|
|
86
|
-
]
|
|
94
|
+
];
|
|
95
|
+
if (onlyUnambiguousCssAssets) candidates.push(resolveWebpackCssModuleIdentifierResource(module));
|
|
96
|
+
for (const candidate of candidates) {
|
|
87
97
|
if (typeof candidate !== "string") continue;
|
|
88
98
|
const normalized = normalizeResource(candidate, module);
|
|
89
99
|
if (normalized) resources.add(normalized);
|
|
@@ -103,7 +113,7 @@ function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normal
|
|
|
103
113
|
};
|
|
104
114
|
for (const chunk of chunks) {
|
|
105
115
|
const cssFiles = toChunkFiles(chunk.files).filter((file) => cssMatcher(file));
|
|
106
|
-
if (cssFiles.length === 0) continue;
|
|
116
|
+
if (cssFiles.length === 0 || onlyUnambiguousCssAssets && cssFiles.length !== 1) continue;
|
|
107
117
|
const modules = chunkGraph.getChunkModulesIterable(chunk);
|
|
108
118
|
if (!modules) continue;
|
|
109
119
|
const cssResources = /* @__PURE__ */ new Set();
|
|
@@ -113,6 +123,12 @@ function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normal
|
|
|
113
123
|
}
|
|
114
124
|
return resourcesByAsset;
|
|
115
125
|
}
|
|
126
|
+
function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normalizeResource) {
|
|
127
|
+
return createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, false);
|
|
128
|
+
}
|
|
129
|
+
function createWebpackDirectCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normalizeResource) {
|
|
130
|
+
return createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, true);
|
|
131
|
+
}
|
|
116
132
|
function createAssetHashByChunkMap(chunks) {
|
|
117
133
|
const partsByFile = /* @__PURE__ */ new Map();
|
|
118
134
|
for (const chunk of chunks) {
|
|
@@ -315,8 +331,15 @@ function resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions) {
|
|
|
315
331
|
}
|
|
316
332
|
function shouldConsumeWebpackLoaderGeneratedCss(options) {
|
|
317
333
|
if (!options.shouldRegenerateExplicitTailwindV4CssSource) return true;
|
|
318
|
-
if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates &&
|
|
319
|
-
|
|
334
|
+
if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
|
|
335
|
+
if (options.hasBundlerGeneratedCssMarker) return true;
|
|
336
|
+
if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
|
|
337
|
+
return Boolean(options.allowMarkerlessRegistryMatch && options.loaderGeneratedClassSet && options.sourceCandidates && !hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates) && !hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates));
|
|
338
|
+
}
|
|
339
|
+
function hasDeferredWebpackGeneratedCss(source, generatedClassSets) {
|
|
340
|
+
const selectors = require_hmr_timing.collectRawSourceClassSelectors(source);
|
|
341
|
+
for (const classSet of generatedClassSets) for (const candidate of classSet) if (selectors.has(candidate)) return true;
|
|
342
|
+
return false;
|
|
320
343
|
}
|
|
321
344
|
function hasUsableWebpackGeneratorCssSources(cssSources) {
|
|
322
345
|
return Array.isArray(cssSources) && cssSources.some((source) => typeof source?.css === "string" && source.css.length > 0);
|
|
@@ -405,7 +428,8 @@ function isWebpackKeyframesRule(rule) {
|
|
|
405
428
|
}
|
|
406
429
|
function collectWebpackBareSelectorUserCss(source) {
|
|
407
430
|
try {
|
|
408
|
-
const
|
|
431
|
+
const normalizedSource = require_generator.removeTailwindSourceDirectives(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(source)), { importFallback: true });
|
|
432
|
+
const root = _weapp_tailwindcss_postcss.postcss.parse(normalizedSource);
|
|
409
433
|
let changed = false;
|
|
410
434
|
root.walkAtRules((rule) => {
|
|
411
435
|
if (rule.name === "import" || rule.name === "font-face" || rule.name.endsWith("keyframes")) {
|
|
@@ -425,7 +449,7 @@ function collectWebpackBareSelectorUserCss(source) {
|
|
|
425
449
|
changed = true;
|
|
426
450
|
}
|
|
427
451
|
});
|
|
428
|
-
return changed ? root.toString() :
|
|
452
|
+
return changed ? root.toString() : normalizedSource;
|
|
429
453
|
} catch {
|
|
430
454
|
return "";
|
|
431
455
|
}
|
|
@@ -618,7 +642,7 @@ function unescapeCssIdentifier(value) {
|
|
|
618
642
|
}
|
|
619
643
|
function collectGeneratedCssRuntimeCandidates(source) {
|
|
620
644
|
const candidates = /* @__PURE__ */ new Set();
|
|
621
|
-
if (
|
|
645
|
+
if (require_hmr_timing.hasBundlerGeneratedCssMarker(source) || !require_generator.hasTailwindGeneratedCss(source) && !require_generator.hasTailwindGeneratedCssMarkers(source)) return candidates;
|
|
622
646
|
try {
|
|
623
647
|
_weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
|
|
624
648
|
for (const selector of rule.selectors) for (const match of selector.matchAll(/\.((?:\\.|[\w\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/g)) {
|
|
@@ -705,7 +729,9 @@ function createWebpackGeneratorUserCssSourceAppend(...sources) {
|
|
|
705
729
|
let css = "";
|
|
706
730
|
const usedParts = [];
|
|
707
731
|
for (const source of parts) {
|
|
708
|
-
const
|
|
732
|
+
const merged = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.mergeCoveredCssRuleDeclarations)(css, source.css) : void 0;
|
|
733
|
+
if (merged?.changed) css = merged.baseCss;
|
|
734
|
+
const nextCss = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(css, merged?.css ?? source.css) : source.css;
|
|
709
735
|
if (!(nextCss.trim().length > 0)) continue;
|
|
710
736
|
css = require_hmr_timing.createCssSourceOrderAppend(css, nextCss);
|
|
711
737
|
usedParts.push(source);
|
|
@@ -851,10 +877,10 @@ function finalizeTracedWebpackCssAsset(css, cssHandlerOptions, options) {
|
|
|
851
877
|
function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
|
|
852
878
|
const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
|
|
853
879
|
if (isWebGeneratorTarget) {
|
|
854
|
-
if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(
|
|
855
|
-
return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(
|
|
880
|
+
if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_hmr_timing.stripBundlerGeneratedCssMarkers(source))));
|
|
881
|
+
return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
|
|
856
882
|
}
|
|
857
|
-
let finalized = require_generator.removeTailwindSourceDirectives(
|
|
883
|
+
let finalized = require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
|
|
858
884
|
if (options.generatedCss !== true) {
|
|
859
885
|
finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
|
|
860
886
|
cssPreflight: false,
|
|
@@ -883,7 +909,7 @@ function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTa
|
|
|
883
909
|
function finalizeWebpackCssAssetOutputSource(source, compilerOptions, isWebGeneratorTarget) {
|
|
884
910
|
if (isWebGeneratorTarget) return source;
|
|
885
911
|
const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
|
|
886
|
-
return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(dedupeMiniProgramPreflightSelectorRules(source), styleOptions.cssRemoveHoverPseudoClass));
|
|
912
|
+
return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors((0, _weapp_tailwindcss_postcss.dedupeCoveredCssRules)(dedupeMiniProgramPreflightSelectorRules(source)), styleOptions.cssRemoveHoverPseudoClass));
|
|
887
913
|
}
|
|
888
914
|
function collectWebpackJsRuntimeCandidatesFromAssets(options) {
|
|
889
915
|
if (options.isWebGeneratorTarget) return;
|
|
@@ -974,7 +1000,7 @@ function collectMainImportedCssFiles(compilation, cssAssetFiles, cssMatcher, isM
|
|
|
974
1000
|
return files;
|
|
975
1001
|
}
|
|
976
1002
|
function createWebpackCssSourceResolvers(options) {
|
|
977
|
-
const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetFiles, cssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
|
|
1003
|
+
const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetFiles, cssAssetResources, directCssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
|
|
978
1004
|
const hasConfiguredTailwindV4SourceRoots = () => {
|
|
979
1005
|
const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
|
|
980
1006
|
return (tailwindOptions?.v4?.cssEntries?.length ?? 0) > 0 || (tailwindOptions?.v4?.cssSources?.length ?? 0) > 0;
|
|
@@ -991,7 +1017,7 @@ function createWebpackCssSourceResolvers(options) {
|
|
|
991
1017
|
cwd: compilerOptions.tailwindcssBasedir
|
|
992
1018
|
});
|
|
993
1019
|
const isConfiguredMainCssEntryFile = (sourceFile) => configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
|
|
994
|
-
const isCssSourceAllowedForOutput = (file, sourceFile) => !isConfiguredMainCssEntryFile(sourceFile) || scoreCssSourceOutputMatch(file, sourceFile) > 0;
|
|
1020
|
+
const isCssSourceAllowedForOutput = (file, sourceFile) => !isConfiguredMainCssEntryFile(sourceFile) || directCssAssetResources.get(file)?.has(sourceFile) === true || scoreCssSourceOutputMatch(file, sourceFile) > 0;
|
|
995
1021
|
const inferredMainCssFiles = new Set([...inferWebpackMainCssFiles(compilation.chunks, compilerOptions.cssMatcher, {
|
|
996
1022
|
mainSourceFiles: new Set(configuredMainCssEntryFiles),
|
|
997
1023
|
resourcesByAsset: cssAssetResources
|
|
@@ -1032,6 +1058,12 @@ function createWebpackCssSourceResolvers(options) {
|
|
|
1032
1058
|
return resolveConfiguredMainCssSourceFile(file);
|
|
1033
1059
|
}
|
|
1034
1060
|
const resourceMatches = [...assetResources ?? []].filter((sourceFile) => cssSources.has(sourceFile)).filter((sourceFile) => isCssSourceAllowedForOutput(file, sourceFile)).sort();
|
|
1061
|
+
const configuredResourceMatches = resourceMatches.filter((sourceFile) => configuredCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile)));
|
|
1062
|
+
if (configuredResourceMatches.length === 1) {
|
|
1063
|
+
const sourceFile = configuredResourceMatches[0];
|
|
1064
|
+
activeWebpackCssSourceFiles.add(sourceFile);
|
|
1065
|
+
return sourceFile;
|
|
1066
|
+
}
|
|
1035
1067
|
if (resourceMatches.length === 1) {
|
|
1036
1068
|
const sourceFile = resourceMatches[0];
|
|
1037
1069
|
activeWebpackCssSourceFiles.add(sourceFile);
|
|
@@ -1582,6 +1614,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
1582
1614
|
appType,
|
|
1583
1615
|
cssMatcher: compilerOptions.cssMatcher
|
|
1584
1616
|
}));
|
|
1617
|
+
const directCssAssetResources = createWebpackDirectCssAssetResourceMap(compilation.chunks, compilation.chunkGraph, compilerOptions.cssMatcher, (resource, issuer) => resolveWebpackCssAssetModuleResource(resource, issuer, {
|
|
1618
|
+
appType,
|
|
1619
|
+
cssMatcher: compilerOptions.cssMatcher
|
|
1620
|
+
}));
|
|
1585
1621
|
const watchChangedFiles = new Set([...getWatchChangedFiles?.() ?? []].map((file) => node_path.default.resolve(file)));
|
|
1586
1622
|
const taskConcurrency = watchMode ? require_hmr_timing.resolveTaskConcurrency(1) : void 0;
|
|
1587
1623
|
const activeProcessCacheKeys = /* @__PURE__ */ new Set();
|
|
@@ -1602,6 +1638,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
1602
1638
|
compilation,
|
|
1603
1639
|
cssAssetFiles: entries.map(([file]) => file),
|
|
1604
1640
|
cssAssetResources,
|
|
1641
|
+
directCssAssetResources,
|
|
1605
1642
|
cssHandlerOptionsCache,
|
|
1606
1643
|
cssSources,
|
|
1607
1644
|
cssUserHandlerOptionsCache,
|
|
@@ -1862,7 +1899,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
1862
1899
|
hasTailwindGeneratedAssetCss = hasGeneratedCssMarker;
|
|
1863
1900
|
} else {
|
|
1864
1901
|
const source = readCurrentProcessedRawSource();
|
|
1865
|
-
hasGeneratedCssMarker =
|
|
1902
|
+
hasGeneratedCssMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(source);
|
|
1866
1903
|
hasTailwindGeneratedAssetCss = require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source);
|
|
1867
1904
|
}
|
|
1868
1905
|
const hasProcessedAssetTailwindDirectives = () => {
|
|
@@ -1902,8 +1939,16 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
1902
1939
|
},
|
|
1903
1940
|
transform: async () => {
|
|
1904
1941
|
const source = readCurrentProcessedRawSource();
|
|
1905
|
-
const
|
|
1906
|
-
const
|
|
1942
|
+
const missingProcessedLoaderGeneratedCss = isWebGeneratorTarget && processedLoaderGeneratedCss ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(source, require_hmr_timing.stripBundlerGeneratedCssMarkers(processedLoaderGeneratedCss.css)) : "";
|
|
1943
|
+
const sourceWithLoaderGeneratedCss = missingProcessedLoaderGeneratedCss.trim().length === 0 ? source : createWebpackGeneratorUserCssSourceAppend({
|
|
1944
|
+
css: source,
|
|
1945
|
+
processed: true
|
|
1946
|
+
}, {
|
|
1947
|
+
css: missingProcessedLoaderGeneratedCss,
|
|
1948
|
+
processed: true
|
|
1949
|
+
}).css;
|
|
1950
|
+
const processedBareSelectorSourceCss = processedSourceCss ?? (hasTailwindGeneratedAssetCss ? removeWebpackTailwindGeneratedAssetCss(sourceWithLoaderGeneratedCss) : void 0);
|
|
1951
|
+
const handledCss = hasTailwindGeneratedAssetCss && (!hasGeneratedCssMarker || !isWebGeneratorTarget && hasDeferredWebpackGeneratedCss(source, [...generatedCssSources.values()].map((item) => item.classSet))) ? isWebGeneratorTarget ? sourceWithLoaderGeneratedCss : (await compilerOptions.styleHandler(sourceWithLoaderGeneratedCss, cssHandlerOptionsForProcessedAsset)).css : sourceWithLoaderGeneratedCss;
|
|
1907
1952
|
const nextCss = stripTrailingLineWhitespace(finalizeCssAssetSource(handledCss, {
|
|
1908
1953
|
cssPreflight: cssHandlerOptionsForProcessedAsset.isMainChunk,
|
|
1909
1954
|
generatedCss: hasGeneratedCssMarker || hasTailwindGeneratedAssetCss
|
|
@@ -1996,11 +2041,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
1996
2041
|
const isConfiguredMainCssSource = sourceFile !== void 0 && configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
|
|
1997
2042
|
const sourceCssHasTailwindRoot = sourceCss !== void 0 && require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true });
|
|
1998
2043
|
const shouldPreserveExistingPreflight = cssHandlerOptions.isMainChunk || !isConfiguredMainCssSource && (isConfiguredCssSource || sourceCssHasTailwindRoot);
|
|
1999
|
-
const loaderGeneratedCss = sourceFile
|
|
2044
|
+
const loaderGeneratedCss = sourceFile ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
|
|
2000
2045
|
const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
|
|
2001
2046
|
const explicitTailwindV4SourceCandidates = shouldRegenerateExplicitTailwindV4CssSource && sourceCss && sourceFile && webpackSourceCandidates?.getSourceCandidatesForEntries ? await require_tailwindcss.resolveTailwindV4EntriesFromCssCached(sourceCss, node_path.default.dirname(sourceFile)).then((resolved) => resolved?.entries ? webpackSourceCandidates.getSourceCandidatesForEntries(resolved.entries) : void 0) : void 0;
|
|
2002
2047
|
if (loaderGeneratedCss && shouldConsumeWebpackLoaderGeneratedCss({
|
|
2003
|
-
|
|
2048
|
+
allowMarkerlessRegistryMatch: configuredCssEntryFiles.length === 1,
|
|
2049
|
+
hasBundlerGeneratedCssMarker: require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource),
|
|
2004
2050
|
loaderGeneratedClassSet: loaderGeneratedCss.classSet,
|
|
2005
2051
|
sourceCandidates: explicitTailwindV4SourceCandidates,
|
|
2006
2052
|
shouldRegenerateExplicitTailwindV4CssSource,
|
|
@@ -2011,11 +2057,11 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2011
2057
|
transformRuntimeSet.add(className);
|
|
2012
2058
|
}
|
|
2013
2059
|
for (const dependency of loaderGeneratedCss.dependencies) compilation.fileDependencies?.add?.(dependency);
|
|
2014
|
-
const currentRawSourceWithoutBundlerMarkers =
|
|
2060
|
+
const currentRawSourceWithoutBundlerMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource);
|
|
2015
2061
|
const currentAssetHasProcessedUrl = hasProcessedCssAssetUrl(currentRawSourceWithoutBundlerMarkers) && currentRawSourceWithoutBundlerMarkers !== loaderGeneratedCss.css;
|
|
2016
2062
|
const currentAssetUserCss = currentAssetHasProcessedUrl ? currentRawSourceWithoutBundlerMarkers : shouldUseWebpackAssetAsGeneratorUserCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css, { processed: true }) ? require_hmr_timing.removeGeneratedSelectorCompatCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css) : void 0;
|
|
2017
|
-
const loaderGeneratedCssWithoutMarkers =
|
|
2018
|
-
const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" :
|
|
2063
|
+
const loaderGeneratedCssWithoutMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
|
|
2064
|
+
const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_hmr_timing.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
|
|
2019
2065
|
const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_generator.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
|
|
2020
2066
|
if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk) {
|
|
2021
2067
|
debug("css skip duplicate webpack loader main generation: %s <- %s", file, sourceFile);
|
|
@@ -2032,7 +2078,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2032
2078
|
css: currentAssetUserCss,
|
|
2033
2079
|
processed: true
|
|
2034
2080
|
}).css;
|
|
2035
|
-
const
|
|
2081
|
+
const handledLoaderCss = isWebGeneratorTarget ? mergedLoaderCss : (await compilerOptions.styleHandler(mergedLoaderCss, cssHandlerOptions)).css;
|
|
2082
|
+
const finalizedLoaderCss = finalizeCssAssetSource(handledLoaderCss, {
|
|
2036
2083
|
cssPreflight: cssHandlerOptions.isMainChunk,
|
|
2037
2084
|
generatedCss: true,
|
|
2038
2085
|
preserveExistingPreflight: shouldPreserveExistingPreflight
|
|
@@ -2050,7 +2097,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2050
2097
|
processed: source.processed
|
|
2051
2098
|
};
|
|
2052
2099
|
}));
|
|
2053
|
-
const
|
|
2100
|
+
const handledLoaderSourceBareUserCss = loaderSourceBareUserCss === void 0 ? "" : loaderSourceBareUserCss.processed ? loaderSourceBareUserCss.css : (await compilerOptions.styleHandler(loaderSourceBareUserCss.css, cssHandlerOptions)).css;
|
|
2101
|
+
const finalizedLoaderSourceBareUserCss = handledLoaderSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledLoaderSourceBareUserCss, {
|
|
2054
2102
|
cssPreflight: false,
|
|
2055
2103
|
generatedCss: false
|
|
2056
2104
|
});
|
|
@@ -2071,7 +2119,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2071
2119
|
file: registeredSourceFile
|
|
2072
2120
|
})), generatorRawSource, sourceFile, (registeredSourceFile) => isSameWebpackSourceScope(file, registeredSourceFile, sourceFile));
|
|
2073
2121
|
const currentAssetLooksGenerated = require_generator.hasTailwindGeneratedCss(currentRawSource) || require_generator.hasTailwindGeneratedCssMarkers(currentRawSource);
|
|
2074
|
-
const currentAssetHasBundlerGeneratedMarker =
|
|
2122
|
+
const currentAssetHasBundlerGeneratedMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource);
|
|
2075
2123
|
const currentAssetUserCssSource = currentAssetLooksGenerated ? removeWebpackTailwindGeneratedAssetCss(currentRawSource) : currentRawSource;
|
|
2076
2124
|
if (sourceFile === void 0 && currentAssetHasBundlerGeneratedMarker && (currentAssetUserCssSource.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetUserCssSource))) return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
|
|
2077
2125
|
const currentAssetHasAdditionalUserCss = currentAssetLooksGenerated && (hasAdditionalWebpackAssetUserCssMarkers(currentAssetUserCssSource, generatorRawSource) || currentAssetUserCssSource.trim().length > 0);
|
|
@@ -2092,7 +2140,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2092
2140
|
}),
|
|
2093
2141
|
sourceCssProcessed
|
|
2094
2142
|
}), registeredUserRawSource);
|
|
2095
|
-
if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(
|
|
2143
|
+
if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
|
|
2096
2144
|
const fallbackGeneratorRuntimeSet = getGeneratorRuntimeSet();
|
|
2097
2145
|
const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
|
|
2098
2146
|
const currentAssetHasTailwindDirectives = require_generator.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindApplyDirective(generatorRawSource);
|
|
@@ -2184,7 +2232,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
|
|
|
2184
2232
|
processed: source.processed
|
|
2185
2233
|
};
|
|
2186
2234
|
}));
|
|
2187
|
-
const
|
|
2235
|
+
const handledSourceBareUserCss = sourceBareUserCss === void 0 ? "" : sourceBareUserCss.processed ? sourceBareUserCss.css : (await compilerOptions.styleHandler(sourceBareUserCss.css, cssHandlerOptions)).css;
|
|
2236
|
+
const finalizedSourceBareUserCss = handledSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledSourceBareUserCss, {
|
|
2188
2237
|
cssPreflight: false,
|
|
2189
2238
|
generatedCss: false
|
|
2190
2239
|
});
|
|
@@ -2281,6 +2330,30 @@ function installTailwindcssCssRedirect(pkgDir) {
|
|
|
2281
2330
|
const localRequire = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
|
|
2282
2331
|
const MPX_STYLE_RESOURCE_QUERY_RE = /(?:^|[?&])type=styles(?:&|$)/;
|
|
2283
2332
|
const MPX_WEBPACK_PLUGIN_PACKAGE_RE = /@mpxjs[\\/]webpack-plugin[\\/]package\.json$/;
|
|
2333
|
+
const MPX_WEBPACK_PLUGIN_LIB_RE = /^(.*[\\/]@mpxjs[\\/]webpack-plugin)[\\/]lib[\\/]/;
|
|
2334
|
+
const MPX_WEBPACK_PLUGIN_REQUEST_RE = /@mpxjs\/webpack-plugin\/([^!?]+)/g;
|
|
2335
|
+
function findMpxWebpackPluginDirFromRules(rules) {
|
|
2336
|
+
const visit = (value) => {
|
|
2337
|
+
if (typeof value === "string") return value.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1];
|
|
2338
|
+
if (Array.isArray(value)) {
|
|
2339
|
+
for (const item of value) {
|
|
2340
|
+
const result = visit(item);
|
|
2341
|
+
if (result) return result;
|
|
2342
|
+
}
|
|
2343
|
+
return;
|
|
2344
|
+
}
|
|
2345
|
+
if (value && typeof value === "object") for (const key of [
|
|
2346
|
+
"loader",
|
|
2347
|
+
"use",
|
|
2348
|
+
"rules",
|
|
2349
|
+
"oneOf"
|
|
2350
|
+
]) {
|
|
2351
|
+
const result = visit(value[key]);
|
|
2352
|
+
if (result) return result;
|
|
2353
|
+
}
|
|
2354
|
+
};
|
|
2355
|
+
return visit(rules);
|
|
2356
|
+
}
|
|
2284
2357
|
function isMpxStyleResourceQuery(query) {
|
|
2285
2358
|
if (typeof query !== "string") return false;
|
|
2286
2359
|
return MPX_STYLE_RESOURCE_QUERY_RE.test(query);
|
|
@@ -2289,6 +2362,12 @@ function getTailwindcssCssEntry(pkgDir) {
|
|
|
2289
2362
|
return node_path.default.join(pkgDir, "index.css");
|
|
2290
2363
|
}
|
|
2291
2364
|
function resolveMpxWebpackPluginDir(compiler) {
|
|
2365
|
+
const rulePluginDir = findMpxWebpackPluginDirFromRules([
|
|
2366
|
+
compiler?._module?.loaders,
|
|
2367
|
+
compiler?.loaders,
|
|
2368
|
+
compiler?.options?.module?.rules
|
|
2369
|
+
]);
|
|
2370
|
+
if (rulePluginDir) return rulePluginDir;
|
|
2292
2371
|
const candidates = [
|
|
2293
2372
|
compiler?.context,
|
|
2294
2373
|
compiler?.options?.context,
|
|
@@ -2306,6 +2385,45 @@ function resolveMpxWebpackPluginDir(compiler) {
|
|
|
2306
2385
|
return;
|
|
2307
2386
|
}
|
|
2308
2387
|
}
|
|
2388
|
+
function rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir, pathImpl = node_path.default) {
|
|
2389
|
+
return request.replace(MPX_WEBPACK_PLUGIN_REQUEST_RE, (_full, subpath) => {
|
|
2390
|
+
return pathImpl.join(mpxWebpackPluginDir, ...subpath.split("/"));
|
|
2391
|
+
});
|
|
2392
|
+
}
|
|
2393
|
+
function patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir) {
|
|
2394
|
+
if (!mpxWebpackPluginDir || !compiler) return false;
|
|
2395
|
+
const pluginName = "weapp-tailwindcss-mpx-loader-resolve";
|
|
2396
|
+
const patchedCompilers = /* @__PURE__ */ new WeakSet();
|
|
2397
|
+
const patchedLoaderResolvers = /* @__PURE__ */ new WeakSet();
|
|
2398
|
+
const patchedResolverFactories = /* @__PURE__ */ new WeakSet();
|
|
2399
|
+
const install = (targetCompiler) => {
|
|
2400
|
+
if (!targetCompiler || typeof targetCompiler !== "object" || patchedCompilers.has(targetCompiler)) return;
|
|
2401
|
+
patchedCompilers.add(targetCompiler);
|
|
2402
|
+
ensureResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
|
|
2403
|
+
const resolverFactory = targetCompiler.resolverFactory;
|
|
2404
|
+
if (resolverFactory && typeof resolverFactory === "object" && !patchedResolverFactories.has(resolverFactory)) {
|
|
2405
|
+
patchedResolverFactories.add(resolverFactory);
|
|
2406
|
+
installMpxResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
|
|
2407
|
+
}
|
|
2408
|
+
targetCompiler.hooks?.normalModuleFactory?.tap?.(pluginName, (normalModuleFactory) => {
|
|
2409
|
+
const loaderResolver = normalModuleFactory.getResolver?.("loader");
|
|
2410
|
+
if (loaderResolver && typeof loaderResolver === "object" && !patchedLoaderResolvers.has(loaderResolver)) {
|
|
2411
|
+
patchedLoaderResolvers.add(loaderResolver);
|
|
2412
|
+
patchMpxLoaderResolver(loaderResolver, mpxWebpackPluginDir);
|
|
2413
|
+
}
|
|
2414
|
+
normalModuleFactory.hooks.beforeResolve.tap(pluginName, (resolveData) => {
|
|
2415
|
+
if (typeof resolveData?.request === "string") resolveData.request = rewriteMpxWebpackPluginRequests(resolveData.request, mpxWebpackPluginDir);
|
|
2416
|
+
});
|
|
2417
|
+
});
|
|
2418
|
+
targetCompiler.hooks?.compilation?.tap?.(pluginName, (compilation) => {
|
|
2419
|
+
compilation.hooks?.childCompiler?.tap?.(pluginName, (childCompiler) => {
|
|
2420
|
+
install(childCompiler);
|
|
2421
|
+
});
|
|
2422
|
+
});
|
|
2423
|
+
};
|
|
2424
|
+
install(compiler);
|
|
2425
|
+
return true;
|
|
2426
|
+
}
|
|
2309
2427
|
function isMpxWebpackPluginRequest(request) {
|
|
2310
2428
|
return request === "@mpxjs/webpack-plugin" || Boolean(request?.startsWith("@mpxjs/webpack-plugin/"));
|
|
2311
2429
|
}
|
|
@@ -2344,27 +2462,39 @@ function ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
|
|
|
2344
2462
|
compiler.options.resolveLoader.alias = alias;
|
|
2345
2463
|
addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
|
|
2346
2464
|
}
|
|
2347
|
-
function
|
|
2348
|
-
const
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
const
|
|
2355
|
-
|
|
2356
|
-
return
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2465
|
+
function installMpxResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
|
|
2466
|
+
const resolveOptionsHook = compiler?.resolverFactory?.hooks?.resolveOptions?.for?.("loader");
|
|
2467
|
+
if (!resolveOptionsHook?.tap) return;
|
|
2468
|
+
resolveOptionsHook.tap({
|
|
2469
|
+
name: "weapp-tailwindcss-mpx-loader-resolve",
|
|
2470
|
+
stage: 100
|
|
2471
|
+
}, (resolveOptions) => {
|
|
2472
|
+
const alias = Array.isArray(resolveOptions.alias) ? [...resolveOptions.alias] : { ...resolveOptions.alias };
|
|
2473
|
+
addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
|
|
2474
|
+
return {
|
|
2475
|
+
...resolveOptions,
|
|
2476
|
+
alias
|
|
2477
|
+
};
|
|
2478
|
+
});
|
|
2479
|
+
}
|
|
2480
|
+
function patchMpxLoaderResolver(resolver, mpxWebpackPluginDir) {
|
|
2481
|
+
const originalResolve = resolver?.resolve;
|
|
2482
|
+
if (typeof originalResolve !== "function" || originalResolve.__weappTwPatched) return;
|
|
2483
|
+
const wrappedResolve = function(...args) {
|
|
2484
|
+
const requestIndex = typeof args[0] === "string" ? 1 : 2;
|
|
2485
|
+
const request = args[requestIndex];
|
|
2486
|
+
if (typeof request === "string" && isMpxWebpackPluginRequest(request)) args[requestIndex] = resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir);
|
|
2487
|
+
return originalResolve.apply(this, args);
|
|
2488
|
+
};
|
|
2489
|
+
wrappedResolve.__weappTwPatched = true;
|
|
2490
|
+
wrappedResolve.__weappTwOriginal = originalResolve;
|
|
2491
|
+
resolver.resolve = wrappedResolve;
|
|
2361
2492
|
}
|
|
2362
|
-
function patchMpxWebpackPluginNormalizeLib(
|
|
2493
|
+
function patchMpxWebpackPluginNormalizeLib(_compiler, mpxWebpackPluginDir) {
|
|
2363
2494
|
if (!mpxWebpackPluginDir) return false;
|
|
2364
|
-
const projectRequire = resolveMpxWebpackPluginRequire(compiler);
|
|
2365
2495
|
let normalize;
|
|
2366
2496
|
try {
|
|
2367
|
-
normalize =
|
|
2497
|
+
normalize = (0, node_module.createRequire)(node_path.default.join(mpxWebpackPluginDir, "package.json"))(node_path.default.join(mpxWebpackPluginDir, "lib/utils/normalize"));
|
|
2368
2498
|
} catch {
|
|
2369
2499
|
return false;
|
|
2370
2500
|
}
|
|
@@ -2382,6 +2512,7 @@ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
|
|
|
2382
2512
|
compiler.options.resolve = compiler.options.resolve || {};
|
|
2383
2513
|
const mpxWebpackPluginDir = resolveMpxWebpackPluginDir(compiler);
|
|
2384
2514
|
patchMpxWebpackPluginNormalizeLib(compiler, mpxWebpackPluginDir);
|
|
2515
|
+
patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir);
|
|
2385
2516
|
if (mpxWebpackPluginDir) ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir);
|
|
2386
2517
|
const alias = compiler.options.resolve.alias ?? {};
|
|
2387
2518
|
compiler.options.resolve.alias = alias;
|
|
@@ -2400,19 +2531,29 @@ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
|
|
|
2400
2531
|
return tailwindcssCssEntry;
|
|
2401
2532
|
}
|
|
2402
2533
|
function patchMpxLoaderResolve(loaderContext, pkgDir, enabled) {
|
|
2403
|
-
if (!enabled
|
|
2404
|
-
const originalResolve = loaderContext.resolve;
|
|
2405
|
-
if (originalResolve.__weappTwPatched) return;
|
|
2534
|
+
if (!enabled) return;
|
|
2406
2535
|
const tailwindcssCssEntry = getTailwindcssCssEntry(pkgDir);
|
|
2407
2536
|
const mpxWebpackPluginDir = resolveMpxWebpackPluginDir(loaderContext);
|
|
2408
|
-
const
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2537
|
+
const originalResolve = loaderContext.resolve;
|
|
2538
|
+
if (typeof originalResolve === "function" && !originalResolve.__weappTwPatched) {
|
|
2539
|
+
const wrappedResolve = function(context, request, callback) {
|
|
2540
|
+
if (request === "tailwindcss" || request === "tailwindcss$") return callback(null, tailwindcssCssEntry);
|
|
2541
|
+
if (request?.startsWith("tailwindcss/")) return callback(null, node_path.default.join(pkgDir, request.slice(12)));
|
|
2542
|
+
if (mpxWebpackPluginDir && isMpxWebpackPluginRequest(request)) return callback(null, resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir));
|
|
2543
|
+
return originalResolve.call(this, context, request, callback);
|
|
2544
|
+
};
|
|
2545
|
+
wrappedResolve.__weappTwPatched = true;
|
|
2546
|
+
loaderContext.resolve = wrappedResolve;
|
|
2547
|
+
}
|
|
2548
|
+
const originalImportModule = loaderContext.importModule;
|
|
2549
|
+
if (mpxWebpackPluginDir && typeof originalImportModule === "function" && !originalImportModule.__weappTwPatched) {
|
|
2550
|
+
const wrappedImportModule = function(request, ...args) {
|
|
2551
|
+
const resolvedRequest = typeof request === "string" ? rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir) : request;
|
|
2552
|
+
return originalImportModule.call(this, resolvedRequest, ...args);
|
|
2553
|
+
};
|
|
2554
|
+
wrappedImportModule.__weappTwPatched = true;
|
|
2555
|
+
loaderContext.importModule = wrappedImportModule;
|
|
2556
|
+
}
|
|
2416
2557
|
}
|
|
2417
2558
|
function setupMpxTailwindcssRedirect(pkgDir, enabled) {
|
|
2418
2559
|
if (enabled) installTailwindcssCssRedirect(pkgDir);
|
|
@@ -2497,11 +2638,14 @@ function setupWebpackV5Loaders(options) {
|
|
|
2497
2638
|
if (shouldRewriteCssImports && mpxCssImportRewrite) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
|
|
2498
2639
|
const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
|
|
2499
2640
|
const shouldInjectRuntimeClassSetLoader = !generatorBranch.isWeb;
|
|
2500
|
-
const
|
|
2641
|
+
const shouldInjectCssGenerationLoader = generatorOptions.enabled && runtimeState.tailwindRuntime.majorVersion === 4 && (generatorTarget === "web" || generatorTarget === "weapp");
|
|
2642
|
+
const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || shouldInjectCssGenerationLoader;
|
|
2643
|
+
const runtimeCssGenerationLoader = shouldInjectCssGenerationLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-generation-loader.js") : void 0;
|
|
2501
2644
|
const runtimeCssImportRewriteLoader = shouldInjectCssImportRewriteLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
|
|
2502
2645
|
const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
|
|
2646
|
+
const runtimeCssGenerationLoaderExists = runtimeCssGenerationLoader ? node_fs.default.existsSync(runtimeCssGenerationLoader) : false;
|
|
2503
2647
|
const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
|
|
2504
|
-
const runtimeLoaderRewriteOptions = shouldInjectCssImportRewriteLoader ? {
|
|
2648
|
+
const runtimeLoaderRewriteOptions = shouldInjectCssImportRewriteLoader || shouldInjectCssGenerationLoader ? {
|
|
2505
2649
|
pkgDir: weappTailwindcssPackageDir,
|
|
2506
2650
|
compilerOptions,
|
|
2507
2651
|
runtimeState,
|
|
@@ -2526,7 +2670,11 @@ function setupWebpackV5Loaders(options) {
|
|
|
2526
2670
|
compiler.hooks.watchClose?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
|
|
2527
2671
|
compiler.hooks.shutdown?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
|
|
2528
2672
|
const { findRewriteAnchor, findClassSetAnchor } = loaderAnchorFinders;
|
|
2529
|
-
const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? {
|
|
2673
|
+
const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions && shouldInjectCssImportRewriteLoader ? {
|
|
2674
|
+
generateCss: false,
|
|
2675
|
+
tailwindcssImportRewriteRuntimeKey: runtimeRegistryKey
|
|
2676
|
+
} : void 0;
|
|
2677
|
+
const cssGenerationLoaderOptions = runtimeLoaderRewriteOptions && shouldInjectCssGenerationLoader ? { tailwindcssImportRewriteRuntimeKey: runtimeRegistryKey } : void 0;
|
|
2530
2678
|
if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && mpxCssImportRewrite) injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
|
|
2531
2679
|
const createRuntimeClassSetLoaderEntry = () => ({
|
|
2532
2680
|
loader: runtimeClassSetLoader,
|
|
@@ -2543,10 +2691,22 @@ function setupWebpackV5Loaders(options) {
|
|
|
2543
2691
|
type: null
|
|
2544
2692
|
};
|
|
2545
2693
|
};
|
|
2694
|
+
const createCssGenerationLoaderEntry = () => {
|
|
2695
|
+
if (!runtimeCssGenerationLoader || !cssGenerationLoaderOptions) return null;
|
|
2696
|
+
return {
|
|
2697
|
+
loader: runtimeCssGenerationLoader,
|
|
2698
|
+
options: cssGenerationLoaderOptions,
|
|
2699
|
+
ident: null,
|
|
2700
|
+
type: null
|
|
2701
|
+
};
|
|
2702
|
+
};
|
|
2546
2703
|
const { NormalModule } = compiler.webpack;
|
|
2547
2704
|
compiler.hooks.compilation.tap(require_context.pluginName, (compilation) => {
|
|
2548
|
-
NormalModule.getCompilationHooks(compilation).loader.tap(
|
|
2549
|
-
|
|
2705
|
+
NormalModule.getCompilationHooks(compilation).loader.tap({
|
|
2706
|
+
name: require_context.pluginName,
|
|
2707
|
+
stage: 100
|
|
2708
|
+
}, (_loaderContext, module) => {
|
|
2709
|
+
if (!(runtimeClassSetLoaderExists || runtimeCssGenerationLoaderExists || runtimeCssImportRewriteLoaderExists)) return;
|
|
2550
2710
|
patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, shouldRewriteCssImports && mpxCssImportRewrite);
|
|
2551
2711
|
const loaderEntries = module.loaders || [];
|
|
2552
2712
|
let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
|
|
@@ -2566,6 +2726,12 @@ function setupWebpackV5Loaders(options) {
|
|
|
2566
2726
|
if (position === "after") loaderEntries.push(entry);
|
|
2567
2727
|
else loaderEntries.unshift(entry);
|
|
2568
2728
|
};
|
|
2729
|
+
if (cssGenerationLoaderOptions && runtimeCssGenerationLoaderExists && runtimeCssGenerationLoader && isCssModule && !hasLoaderEntry(loaderEntries, runtimeCssGenerationLoader)) {
|
|
2730
|
+
const generationLoaderEntry = createCssGenerationLoaderEntry();
|
|
2731
|
+
const anchorIndex = findRewriteAnchor(loaderEntries);
|
|
2732
|
+
if (generationLoaderEntry) if (anchorIndex === -1) anchorlessInsert(generationLoaderEntry, "after");
|
|
2733
|
+
else loaderEntries.splice(anchorIndex + 1, 0, generationLoaderEntry);
|
|
2734
|
+
}
|
|
2569
2735
|
if (cssImportRewriteLoaderOptions && runtimeCssImportRewriteLoaderExists && runtimeCssImportRewriteLoader && isCssModule) {
|
|
2570
2736
|
const existingIndex = loaderEntries.findIndex((entry) => entry.loader?.includes?.(runtimeCssImportRewriteLoader));
|
|
2571
2737
|
const rewriteLoaderEntry = existingIndex !== -1 ? {
|
package/dist/webpack.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_webpack = require("./webpack-
|
|
2
|
+
const require_webpack = require("./webpack-nppysF4B.js");
|
|
3
3
|
exports.WeappTailwindcss = require_webpack.WeappTailwindcss;
|
|
4
4
|
exports.weappTailwindcss = require_webpack.WeappTailwindcss;
|
|
5
5
|
exports.weappTailwindcssPackageDir = require_webpack.weappTailwindcssPackageDir;
|
package/dist/webpack.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-
|
|
1
|
+
import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-C_UUFRgj.mjs";
|
|
2
2
|
export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss, weappTailwindcssPackageDir };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weapp-tailwindcss",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.15",
|
|
4
4
|
"description": "把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!",
|
|
5
5
|
"author": "ice breaker <1324318532@qq.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -187,6 +187,14 @@
|
|
|
187
187
|
"access": "public",
|
|
188
188
|
"registry": "https://registry.npmjs.org"
|
|
189
189
|
},
|
|
190
|
+
"peerDependencies": {
|
|
191
|
+
"@mpxjs/webpack-plugin": ">=2.0.0 <3.0.0"
|
|
192
|
+
},
|
|
193
|
+
"peerDependenciesMeta": {
|
|
194
|
+
"@mpxjs/webpack-plugin": {
|
|
195
|
+
"optional": true
|
|
196
|
+
}
|
|
197
|
+
},
|
|
190
198
|
"dependencies": {
|
|
191
199
|
"@babel/parser": "~7.29.7",
|
|
192
200
|
"@babel/traverse": "~7.29.7",
|
|
@@ -203,11 +211,11 @@
|
|
|
203
211
|
"micromatch": "^4.0.8",
|
|
204
212
|
"semver": "~7.8.5",
|
|
205
213
|
"yaml": "^2.9.0",
|
|
214
|
+
"@weapp-tailwindcss/reset": "0.1.1",
|
|
206
215
|
"@weapp-tailwindcss/logger": "2.0.0",
|
|
216
|
+
"@weapp-tailwindcss/postcss": "3.1.11",
|
|
207
217
|
"@weapp-tailwindcss/shared": "2.0.0",
|
|
208
|
-
"@weapp-tailwindcss/reset": "0.1.1",
|
|
209
218
|
"tailwindcss-config": "2.0.1",
|
|
210
|
-
"@weapp-tailwindcss/postcss": "3.1.10",
|
|
211
219
|
"weapp-style-injector": "1.0.1"
|
|
212
220
|
},
|
|
213
221
|
"devDependencies": {
|