weapp-tailwindcss 5.0.0-next.3 → 5.0.0-next.5

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.
Files changed (95) hide show
  1. package/README.md +4 -5
  2. package/bin/weapp-tailwindcss.js +1 -21
  3. package/dist/bundlers/shared/generator-css.d.ts +5 -2
  4. package/dist/bundlers/vite/generate-bundle.d.ts +1 -0
  5. package/dist/bundlers/vite/index.d.ts +1 -1
  6. package/dist/bundlers/vite/rewrite-css-imports.d.ts +1 -0
  7. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.d.ts +0 -1
  8. package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +1 -1
  9. package/dist/cli/context.d.ts +0 -3
  10. package/dist/cli/mount-options.d.ts +2 -0
  11. package/dist/cli.js +8 -2
  12. package/dist/cli.mjs +8 -2
  13. package/dist/constants.d.ts +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/core.mjs +1 -1
  16. package/dist/css-macro.d.ts +1 -0
  17. package/dist/defaults.js +5 -7
  18. package/dist/defaults.mjs +5 -7
  19. package/dist/generator/index.d.ts +1 -1
  20. package/dist/generator/options.d.ts +3 -4
  21. package/dist/{generator-mmhXzZnv.js → generator-9UEp8OoQ.js} +259 -21
  22. package/dist/{generator-Y-Ikv4Fu.mjs → generator-Dpp-5s8z.mjs} +260 -22
  23. package/dist/{generator-css-CRLrHW4F.js → generator-css-CGueCYbX.js} +173 -32
  24. package/dist/{generator-css-Bwy_Uz89.mjs → generator-css-MyjZhF0z.mjs} +173 -32
  25. package/dist/generator.js +1 -1
  26. package/dist/generator.mjs +1 -1
  27. package/dist/gulp.js +15 -11
  28. package/dist/gulp.mjs +15 -11
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.js +4 -4
  31. package/dist/index.mjs +4 -4
  32. package/dist/js/index.d.ts +1 -0
  33. package/dist/js/literal-transform.d.ts +2 -0
  34. package/dist/{logger-BoVx1Dbt.mjs → logger-1gx9UllH.mjs} +21 -51
  35. package/dist/{logger-BZ45DZJT.js → logger-D9clu_3f.js} +21 -51
  36. package/dist/patcher-options-DnqazL9E.js +34 -0
  37. package/dist/patcher-options-GuOwX0-k.mjs +17 -0
  38. package/dist/postcss.d.ts +2 -2
  39. package/dist/postcss.js +37 -28
  40. package/dist/postcss.mjs +37 -28
  41. package/dist/presets.js +1 -1
  42. package/dist/presets.mjs +1 -1
  43. package/dist/{recorder-XdFvVASS.mjs → recorder-BIW3Kuke.mjs} +5 -12
  44. package/dist/{recorder-GdTJ3QqX.js → recorder-D4BKt75Q.js} +5 -12
  45. package/dist/reset.d.ts +1 -0
  46. package/dist/{css-imports-BbrbluP9.js → run-tasks-Cq5A5nVD.js} +6 -55
  47. package/dist/{css-imports-CSdPq_Sc.mjs → run-tasks-DUVrDJGl.mjs} +5 -42
  48. package/dist/tailwindcss/miniprogram.d.ts +5 -1
  49. package/dist/tailwindcss/patcher-options.d.ts +3 -51
  50. package/dist/tailwindcss/patcher.d.ts +1 -2
  51. package/dist/tailwindcss/v4/patcher-options.d.ts +1 -23
  52. package/dist/tailwindcss/v4/patcher.d.ts +1 -0
  53. package/dist/tailwindcss/v4-engine/types.d.ts +1 -1
  54. package/dist/tailwindcss/version.d.ts +4 -0
  55. package/dist/typedoc.export.d.ts +0 -2
  56. package/dist/types/index.d.ts +1 -3
  57. package/dist/types/shared.d.ts +3 -0
  58. package/dist/types/user-defined-options/general.d.ts +0 -2
  59. package/dist/types/user-defined-options/important.d.ts +3 -3
  60. package/dist/utils/disabled.d.ts +2 -3
  61. package/dist/version-CWBxRFPB.js +56 -0
  62. package/dist/version-WNz3MwRv.mjs +49 -0
  63. package/dist/{vite-DgRh_GXn.js → vite-BkMGwDeH.js} +106 -39
  64. package/dist/{vite-BDywuCjn.mjs → vite-fDM-UQpR.mjs} +89 -22
  65. package/dist/vite.d.ts +1 -2
  66. package/dist/vite.js +3 -4
  67. package/dist/vite.mjs +2 -2
  68. package/dist/weapp-tw-css-import-rewrite-loader.js +1 -1
  69. package/dist/{webpack-CAJR4hhP.js → webpack-CICGEKT9.js} +225 -43
  70. package/dist/{webpack-CiHqVZTg.mjs → webpack-D2Wdk28V.mjs} +214 -27
  71. package/dist/webpack.js +1 -1
  72. package/dist/webpack.mjs +1 -1
  73. package/package.json +21 -30
  74. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-assets.d.ts +0 -14
  75. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-loaders.d.ts +0 -15
  76. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4.d.ts +0 -9
  77. package/dist/experimental/index.d.ts +0 -2
  78. package/dist/experimental/oxc/ast-utils.d.ts +0 -30
  79. package/dist/experimental/oxc/index.d.ts +0 -2
  80. package/dist/experimental/oxc/module-specifiers.d.ts +0 -2
  81. package/dist/experimental/shared/cache.d.ts +0 -3
  82. package/dist/experimental/shared/transform.d.ts +0 -3
  83. package/dist/experimental/shared.d.ts +0 -8
  84. package/dist/experimental/swc/ast-utils.d.ts +0 -30
  85. package/dist/experimental/swc/index.d.ts +0 -2
  86. package/dist/experimental/swc/module-specifiers.d.ts +0 -2
  87. package/dist/loader-anchors-1MumTAtA.mjs +0 -205
  88. package/dist/loader-anchors-TrFvT6g1.js +0 -273
  89. package/dist/patcher-options-6gJN2EXy.js +0 -115
  90. package/dist/patcher-options-DQfR5xxT.mjs +0 -92
  91. package/dist/types/disabled-options.d.ts +0 -4
  92. package/dist/webpack4.d.ts +0 -4
  93. package/dist/webpack4.js +0 -387
  94. package/dist/webpack4.mjs +0 -379
  95. package/scripts/postinstall.mjs +0 -59
@@ -1,22 +1,184 @@
1
1
  const require_chunk = require("./chunk-8l464Juk.js");
2
- const require_patcher_options = require("./patcher-options-6gJN2EXy.js");
3
- const require_recorder = require("./recorder-GdTJ3QqX.js");
2
+ const require_patcher_options = require("./patcher-options-DnqazL9E.js");
3
+ const require_recorder = require("./recorder-D4BKt75Q.js");
4
4
  const require_utils = require("./utils-DmC9_In3.js");
5
- const require_logger = require("./logger-BZ45DZJT.js");
6
- const require_generator_css = require("./generator-css-CRLrHW4F.js");
7
- const require_css_imports = require("./css-imports-BbrbluP9.js");
8
- const require_loader_anchors = require("./loader-anchors-TrFvT6g1.js");
5
+ const require_logger = require("./logger-D9clu_3f.js");
6
+ const require_generator_css = require("./generator-css-CGueCYbX.js");
7
+ const require_run_tasks = require("./run-tasks-Cq5A5nVD.js");
8
+ let node_module = require("node:module");
9
+ node_module = require_chunk.__toESM(node_module);
9
10
  let node_path = require("node:path");
10
11
  node_path = require_chunk.__toESM(node_path);
11
12
  let node_process = require("node:process");
12
13
  node_process = require_chunk.__toESM(node_process);
13
14
  let node_fs = require("node:fs");
14
15
  node_fs = require_chunk.__toESM(node_fs);
15
- //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets.ts
16
- function resolveWebpackStaleClassNameFallback(option, _compiler) {
17
- if (typeof option === "boolean") return option;
16
+ //#region src/shared/tailwindcss-css-redirect.ts
17
+ const moduleWithMutableResolve = node_module.default;
18
+ const patched = /* @__PURE__ */ new WeakSet();
19
+ function installTailwindcssCssRedirect(pkgDir) {
20
+ const target = node_path.default.join(pkgDir, "index.css");
21
+ const original = moduleWithMutableResolve._resolveFilename;
22
+ if (patched.has(original)) return;
23
+ const replacements = new Set(["tailwindcss", "tailwindcss$"]);
24
+ const resolveTailwindcssCss = (request, parent, isMain, options) => {
25
+ if (replacements.has(request)) return target;
26
+ if (request.startsWith("tailwindcss/")) return node_path.default.join(pkgDir, request.slice(12));
27
+ return original(request, parent, isMain, options);
28
+ };
29
+ moduleWithMutableResolve._resolveFilename = resolveTailwindcssCss;
30
+ patched.add(moduleWithMutableResolve._resolveFilename);
31
+ }
32
+ //#endregion
33
+ //#region src/shared/mpx.ts
34
+ const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
35
+ const MPX_STYLE_RESOURCE_QUERY_RE$1 = /(?:^|[?&])type=styles(?:&|$)/;
36
+ function isMpxStyleResourceQuery(query) {
37
+ if (typeof query !== "string") return false;
38
+ return MPX_STYLE_RESOURCE_QUERY_RE$1.test(query);
39
+ }
40
+ function isMpx(appType) {
41
+ return appType === "mpx";
42
+ }
43
+ function getTailwindcssCssEntry(pkgDir) {
44
+ return node_path.default.join(pkgDir, "index.css");
45
+ }
46
+ function isMpxWebpackPluginRequest(request) {
47
+ return request === "@mpxjs/webpack-plugin" || Boolean(request?.startsWith("@mpxjs/webpack-plugin/"));
48
+ }
49
+ function addMpxWebpackPluginAlias(alias, pkgDir) {
50
+ if (Array.isArray(alias)) alias.push({
51
+ name: /^@mpxjs\/webpack-plugin\//,
52
+ alias: pkgDir
53
+ });
54
+ else {
55
+ alias["@mpxjs/webpack-plugin"] = pkgDir;
56
+ alias["@mpxjs/webpack-plugin$"] = pkgDir;
57
+ }
58
+ }
59
+ function ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
60
+ compiler.options.resolveLoader = compiler.options.resolveLoader || {};
61
+ const alias = compiler.options.resolveLoader.alias ?? {};
62
+ compiler.options.resolveLoader.alias = alias;
63
+ addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
64
+ }
65
+ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
66
+ const tailwindcssCssEntry = getTailwindcssCssEntry(pkgDir);
67
+ const mpxWebpackPluginDir = node_path.default.dirname(require$1.resolve("@mpxjs/webpack-plugin/package.json"));
68
+ compiler.options = compiler.options || {};
69
+ compiler.options.resolve = compiler.options.resolve || {};
70
+ ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir);
71
+ const alias = compiler.options.resolve.alias ?? {};
72
+ compiler.options.resolve.alias = alias;
73
+ if (Array.isArray(alias)) alias.push({
74
+ name: /^@mpxjs\/webpack-plugin\//,
75
+ alias: mpxWebpackPluginDir
76
+ }, {
77
+ name: "tailwindcss",
78
+ alias: tailwindcssCssEntry
79
+ }, {
80
+ name: "tailwindcss$",
81
+ alias: tailwindcssCssEntry
82
+ });
83
+ else {
84
+ alias["@mpxjs/webpack-plugin"] = mpxWebpackPluginDir;
85
+ alias["@mpxjs/webpack-plugin$"] = mpxWebpackPluginDir;
86
+ alias.tailwindcss = tailwindcssCssEntry;
87
+ alias.tailwindcss$ = tailwindcssCssEntry;
88
+ }
89
+ return tailwindcssCssEntry;
90
+ }
91
+ function patchMpxLoaderResolve(loaderContext, pkgDir, enabled) {
92
+ if (!enabled || typeof loaderContext.resolve !== "function") return;
93
+ const originalResolve = loaderContext.resolve;
94
+ if (originalResolve.__weappTwPatched) return;
95
+ const tailwindcssCssEntry = getTailwindcssCssEntry(pkgDir);
96
+ const wrappedResolve = function(context, request, callback) {
97
+ if (request === "tailwindcss" || request === "tailwindcss$") return callback(null, tailwindcssCssEntry);
98
+ if (request?.startsWith("tailwindcss/")) return callback(null, node_path.default.join(pkgDir, request.slice(12)));
99
+ if (isMpxWebpackPluginRequest(request)) return originalResolve.call(this, node_process.default.cwd(), request, callback);
100
+ return originalResolve.call(this, context, request, callback);
101
+ };
102
+ wrappedResolve.__weappTwPatched = true;
103
+ loaderContext.resolve = wrappedResolve;
104
+ }
105
+ function setupMpxTailwindcssRedirect(pkgDir, enabled) {
106
+ if (enabled) installTailwindcssCssRedirect(pkgDir);
107
+ }
108
+ const CSS_EXT_RE = /\.css$/i;
109
+ function injectMpxCssRewritePreRules(compiler, loader, loaderOptions) {
110
+ var _compiler$options;
111
+ if (!loader) return;
112
+ const moduleOptions = (_compiler$options = compiler.options).module ?? (_compiler$options.module = { rules: [] });
113
+ moduleOptions.rules = moduleOptions.rules || [];
114
+ const createRule = (match) => ({
115
+ ...match,
116
+ enforce: "pre",
117
+ use: [{
118
+ loader,
119
+ options: loaderOptions
120
+ }]
121
+ });
122
+ moduleOptions.rules.unshift(createRule({ resourceQuery: (query) => isMpxStyleResourceQuery(query) }), createRule({
123
+ test: CSS_EXT_RE,
124
+ resourceQuery: (query) => !isMpxStyleResourceQuery(query)
125
+ }));
126
+ }
127
+ //#endregion
128
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/shared.ts
129
+ const MPX_STYLE_RESOURCE_QUERY_RE = /(?:\?|&)type=styles\b/;
130
+ function getCacheKey(filename) {
131
+ return filename;
132
+ }
133
+ function stripResourceQuery(resource) {
134
+ if (typeof resource !== "string") return resource;
135
+ const queryIndex = resource.indexOf("?");
136
+ if (queryIndex !== -1) return resource.slice(0, queryIndex);
137
+ const hashIndex = resource.indexOf("#");
138
+ if (hashIndex !== -1) return resource.slice(0, hashIndex);
139
+ return resource;
140
+ }
141
+ function isCssLikeModuleResource(resource, cssMatcher, appType) {
142
+ if (typeof resource !== "string") return false;
143
+ const normalizedResource = stripResourceQuery(resource);
144
+ if (normalizedResource && cssMatcher(normalizedResource)) return true;
145
+ if (appType === "mpx") return MPX_STYLE_RESOURCE_QUERY_RE.test(resource);
18
146
  return false;
19
147
  }
148
+ function hasLoaderEntry(entries, target) {
149
+ if (!target) return false;
150
+ return entries.some((entry) => entry.loader?.includes?.(target));
151
+ }
152
+ function toChunkFiles(files) {
153
+ if (!files) return [];
154
+ if (Array.isArray(files)) return files;
155
+ return [...files];
156
+ }
157
+ function createAssetHashByChunkMap(chunks) {
158
+ const partsByFile = /* @__PURE__ */ new Map();
159
+ for (const chunk of chunks) {
160
+ const hash = typeof chunk.hash === "string" ? chunk.hash : void 0;
161
+ if (!hash) continue;
162
+ const chunkId = String(chunk.id ?? chunk.name ?? "");
163
+ for (const file of toChunkFiles(chunk.files)) {
164
+ if (!file) continue;
165
+ let parts = partsByFile.get(file);
166
+ if (!parts) {
167
+ parts = [];
168
+ partsByFile.set(file, parts);
169
+ }
170
+ parts.push(`${chunkId}:${hash}`);
171
+ }
172
+ }
173
+ const hashByFile = /* @__PURE__ */ new Map();
174
+ for (const [file, parts] of partsByFile.entries()) hashByFile.set(file, parts.sort().join("|"));
175
+ return hashByFile;
176
+ }
177
+ function hasWatchChanges(compiler) {
178
+ return (compiler.modifiedFiles?.size ?? 0) > 0 || (compiler.removedFiles?.size ?? 0) > 0;
179
+ }
180
+ //#endregion
181
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets.ts
20
182
  function setupWebpackV5ProcessAssetsHook(options) {
21
183
  const { compiler, options: compilerOptions, appType, runtimeState, getRuntimeRefreshRequirement, refreshRuntimeMetadata, consumeRuntimeRefreshRequirement, debug } = options;
22
184
  const { Compilation, sources } = compiler.webpack;
@@ -32,18 +194,18 @@ function setupWebpackV5ProcessAssetsHook(options) {
32
194
  debug("start");
33
195
  await runtimeState.patchPromise;
34
196
  for (const chunk of compilation.chunks) if (chunk.id && chunk.hash) compilerOptions.cache.calcHashValueChanged(chunk.id, chunk.hash);
35
- const assetHashByChunk = require_loader_anchors.createAssetHashByChunkMap(compilation.chunks);
197
+ const assetHashByChunk = createAssetHashByChunkMap(compilation.chunks);
36
198
  const entries = Object.entries(assets);
37
199
  const compilerOutputPath = compilation.compiler?.outputPath ?? compiler.outputPath;
38
200
  const outputDir = compilerOutputPath ? node_path.default.resolve(compilerOutputPath) : compilation.outputOptions?.path ?? node_process.default.cwd();
39
201
  const jsAssets = /* @__PURE__ */ new Map();
40
202
  for (const [file] of entries) if (compilerOptions.jsMatcher(file) || compilerOptions.wxsMatcher(file)) {
41
- const absolute = require_css_imports.toAbsoluteOutputPath(file, outputDir);
203
+ const absolute = require_run_tasks.toAbsoluteOutputPath(file, outputDir);
42
204
  jsAssets.set(absolute, file);
43
205
  }
44
206
  const moduleGraphOptions = {
45
207
  resolve(specifier, importer) {
46
- return require_css_imports.resolveOutputSpecifier(specifier, importer, outputDir, (candidate) => jsAssets.has(candidate));
208
+ return require_run_tasks.resolveOutputSpecifier(specifier, importer, outputDir, (candidate) => jsAssets.has(candidate));
47
209
  },
48
210
  load: (id) => {
49
211
  const assetName = jsAssets.get(id);
@@ -99,7 +261,6 @@ function setupWebpackV5ProcessAssetsHook(options) {
99
261
  cssUserHandlerOptionsCache.set(cacheKey, created);
100
262
  return created;
101
263
  };
102
- const staleClassNameFallback = resolveWebpackStaleClassNameFallback(compilerOptions.staleClassNameFallback, compiler);
103
264
  const forceRuntimeRefresh = getRuntimeRefreshRequirement();
104
265
  debug("processAssets ensure runtime set forceRefresh=%s major=%s", forceRuntimeRefresh, runtimeState.twPatcher.majorVersion ?? "unknown");
105
266
  const runtimeSet = await require_recorder.ensureRuntimeClassSet(runtimeState, {
@@ -110,6 +271,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
110
271
  });
111
272
  await refreshRuntimeMetadata(forceRuntimeRefresh);
112
273
  consumeRuntimeRefreshRequirement();
274
+ const runtimeSetHash = compilerOptions.cache.computeHash([require_logger.getRuntimeClassSetSignature(runtimeState.twPatcher), [...runtimeSet].sort().join("\n")].join("\n\n"));
113
275
  const defaultTemplateHandlerOptions = { runtimeSet };
114
276
  debug("get runtimeSet, class count: %d", runtimeSet.size);
115
277
  const tasks = [];
@@ -141,10 +303,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
141
303
  }
142
304
  const jsTaskFactories = [];
143
305
  if (Array.isArray(groupedEntries.js)) for (const [file] of groupedEntries.js) {
144
- const cacheKey = require_loader_anchors.getCacheKey(file);
306
+ const cacheKey = getCacheKey(file);
145
307
  const asset = compilation.getAsset(file);
146
308
  if (!asset) continue;
147
- const absoluteFile = require_css_imports.toAbsoluteOutputPath(file, outputDir);
309
+ const absoluteFile = require_run_tasks.toAbsoluteOutputPath(file, outputDir);
148
310
  const initialSource = asset.source.source();
149
311
  const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
150
312
  const chunkHash = assetHashByChunk.get(file);
@@ -165,7 +327,6 @@ function setupWebpackV5ProcessAssetsHook(options) {
165
327
  const currentSourceValue = compilation.getAsset(file)?.source.source();
166
328
  const currentSource = typeof currentSourceValue === "string" ? currentSourceValue : currentSourceValue?.toString() ?? "";
167
329
  const handlerOptions = {
168
- staleClassNameFallback,
169
330
  tailwindcssMajorVersion: runtimeState.twPatcher.majorVersion,
170
331
  filename: absoluteFile,
171
332
  moduleGraph: moduleGraphOptions,
@@ -187,12 +348,13 @@ function setupWebpackV5ProcessAssetsHook(options) {
187
348
  const rawSource = originalSource.source().toString();
188
349
  const cacheKey = file;
189
350
  const chunkHash = assetHashByChunk.get(file);
351
+ const runtimeAwareHash = chunkHash ? `${chunkHash}:${runtimeSetHash}` : void 0;
190
352
  tasks.push(require_generator_css.processCachedTask({
191
353
  cache: compilerOptions.cache,
192
354
  cacheKey,
193
355
  hashKey: `${file}:asset`,
194
356
  rawSource,
195
- hash: chunkHash,
357
+ hash: runtimeAwareHash,
196
358
  applyResult(source) {
197
359
  compilation.updateAsset(file, source);
198
360
  },
@@ -222,7 +384,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
222
384
  }
223
385
  }));
224
386
  }
225
- require_css_imports.pushConcurrentTaskFactories(tasks, jsTaskFactories);
387
+ require_run_tasks.pushConcurrentTaskFactories(tasks, jsTaskFactories);
226
388
  await Promise.all(tasks);
227
389
  debug("end");
228
390
  compilerOptions.onEnd();
@@ -230,13 +392,41 @@ function setupWebpackV5ProcessAssetsHook(options) {
230
392
  });
231
393
  }
232
394
  //#endregion
395
+ //#region src/bundlers/webpack/shared/loader-anchors.ts
396
+ const MPX_STRIP_CONDITIONAL_LOADER = "@mpxjs/webpack-plugin/lib/style-compiler/strip-conditional-loader";
397
+ const MPX_STYLE_COMPILER_LOADER = "@mpxjs/webpack-plugin/lib/style-compiler/index";
398
+ const MPX_REWRITE_PRECEDENCE_LOADERS = [MPX_STYLE_COMPILER_LOADER, MPX_STRIP_CONDITIONAL_LOADER];
399
+ function createFinder(targets) {
400
+ return (entries) => entries.findIndex((entry) => targets.some((target) => entry?.loader?.includes?.(target)));
401
+ }
402
+ function createPrioritizedFinder(targets) {
403
+ return (entries) => {
404
+ for (const target of targets) {
405
+ const idx = entries.findIndex((entry) => entry?.loader?.includes?.(target));
406
+ if (idx !== -1) return idx;
407
+ }
408
+ return -1;
409
+ };
410
+ }
411
+ function createLoaderAnchorFinders(appType) {
412
+ if (isMpx(appType)) return {
413
+ findRewriteAnchor: createPrioritizedFinder(MPX_REWRITE_PRECEDENCE_LOADERS),
414
+ findClassSetAnchor: createFinder([MPX_STYLE_COMPILER_LOADER])
415
+ };
416
+ const fallbackFinder = createFinder(["postcss-loader"]);
417
+ return {
418
+ findRewriteAnchor: fallbackFinder,
419
+ findClassSetAnchor: fallbackFinder
420
+ };
421
+ }
422
+ //#endregion
233
423
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.ts
234
424
  function setupWebpackV5Loaders(options) {
235
- const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, runtimeCssImportRewriteLoaderPath, getClassSetInLoader, getRuntimeWatchDependencies, debug } = options;
236
- const isMpxApp = require_loader_anchors.isMpx(appType);
237
- if (shouldRewriteCssImports && isMpxApp) require_loader_anchors.ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
425
+ const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, getClassSetInLoader, getRuntimeWatchDependencies, debug } = options;
426
+ const isMpxApp = isMpx(appType);
427
+ if (shouldRewriteCssImports && isMpxApp) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
238
428
  const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
239
- const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? runtimeCssImportRewriteLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
429
+ const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
240
430
  const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
241
431
  const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
242
432
  const runtimeLoaderRewriteOptions = shouldRewriteCssImports ? {
@@ -247,9 +437,9 @@ function setupWebpackV5Loaders(options) {
247
437
  getClassSet: getClassSetInLoader,
248
438
  getWatchDependencies: getRuntimeWatchDependencies
249
439
  };
250
- const { findRewriteAnchor, findClassSetAnchor } = require_loader_anchors.createLoaderAnchorFinders(appType);
251
- const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? { rewriteCssImports: runtimeLoaderRewriteOptions } : void 0;
252
- if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && isMpxApp) require_loader_anchors.injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
440
+ const { findRewriteAnchor, findClassSetAnchor } = createLoaderAnchorFinders(appType);
441
+ const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? { tailwindcssImportRewrite: runtimeLoaderRewriteOptions } : void 0;
442
+ if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && isMpxApp) injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
253
443
  const createRuntimeClassSetLoaderEntry = () => ({
254
444
  loader: runtimeClassSetLoader,
255
445
  options: classSetLoaderOptions,
@@ -269,11 +459,11 @@ function setupWebpackV5Loaders(options) {
269
459
  compiler.hooks.compilation.tap(require_recorder.pluginName, (compilation) => {
270
460
  NormalModule.getCompilationHooks(compilation).loader.tap(require_recorder.pluginName, (_loaderContext, module) => {
271
461
  if (!(runtimeClassSetLoaderExists || runtimeCssImportRewriteLoaderExists)) return;
272
- require_loader_anchors.patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, shouldRewriteCssImports && isMpxApp);
462
+ patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, shouldRewriteCssImports && isMpxApp);
273
463
  const loaderEntries = module.loaders || [];
274
464
  let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
275
465
  const classSetAnchorIdx = findClassSetAnchor(loaderEntries);
276
- const isCssModule = require_loader_anchors.isCssLikeModuleResource(module.resource, compilerOptions.cssMatcher, appType);
466
+ const isCssModule = isCssLikeModuleResource(module.resource, compilerOptions.cssMatcher, appType);
277
467
  if (node_process.default.env.WEAPP_TW_LOADER_DEBUG && isCssModule) debug("loader hook css module: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), {
278
468
  rewriteAnchorIdx,
279
469
  classSetAnchorIdx
@@ -301,7 +491,7 @@ function setupWebpackV5Loaders(options) {
301
491
  rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
302
492
  }
303
493
  }
304
- if (runtimeClassSetLoaderExists && !require_loader_anchors.hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
494
+ if (runtimeClassSetLoaderExists && !hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
305
495
  const classSetLoaderEntry = createRuntimeClassSetLoaderEntry();
306
496
  const anchorIndex = findClassSetAnchor(loaderEntries);
307
497
  if (anchorIndex === -1) anchorlessInsert(classSetLoaderEntry, "before");
@@ -316,7 +506,7 @@ function setupWebpackV5Loaders(options) {
316
506
  //#endregion
317
507
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5.ts
318
508
  const debug = require_recorder.createDebug();
319
- const weappTailwindcssPackageDir = require_css_imports.resolvePackageDir("weapp-tailwindcss");
509
+ const weappTailwindcssPackageDir = require_run_tasks.resolvePackageDir("weapp-tailwindcss");
320
510
  /**
321
511
  * @name UnifiedWebpackPluginV5
322
512
  * @description webpack5 核心转义插件
@@ -329,18 +519,11 @@ var UnifiedWebpackPluginV5 = class {
329
519
  }
330
520
  apply(compiler) {
331
521
  compiler.options = compiler.options || {};
332
- const { disabled, onLoad, runtimeLoaderPath, runtimeCssImportRewriteLoaderPath, twPatcher: initialTwPatcher, refreshTailwindcssPatcher } = this.options;
333
- const disabledOptions = require_css_imports.resolveDisabledOptions(disabled);
334
- const shouldRewriteCssImports = (initialTwPatcher.majorVersion ?? 0) >= 4 && this.options.rewriteCssImports !== false && !disabledOptions.rewriteCssImports;
335
- const isMpxApp = require_loader_anchors.isMpx(this.appType);
336
- if (shouldRewriteCssImports) {
337
- require_loader_anchors.applyTailwindcssCssImportRewrite(compiler, {
338
- pkgDir: weappTailwindcssPackageDir,
339
- enabled: true,
340
- appType: this.appType
341
- });
342
- require_loader_anchors.setupMpxTailwindcssRedirect(weappTailwindcssPackageDir, isMpxApp);
343
- }
522
+ const { disabled, onLoad, runtimeLoaderPath, twPatcher: initialTwPatcher, refreshTailwindcssPatcher } = this.options;
523
+ const disabledOptions = require_run_tasks.resolvePluginDisabledState(disabled);
524
+ const shouldRewriteCssImports = (initialTwPatcher.majorVersion ?? 0) >= 4;
525
+ const isMpxApp = isMpx(this.appType);
526
+ if (shouldRewriteCssImports) setupMpxTailwindcssRedirect(weappTailwindcssPackageDir, isMpxApp);
344
527
  if (disabledOptions.plugin) return;
345
528
  const patchRecorderState = require_recorder.setupPatchRecorder(initialTwPatcher, this.options.tailwindcssBasedir, {
346
529
  source: "runtime",
@@ -380,7 +563,7 @@ var UnifiedWebpackPluginV5 = class {
380
563
  runtimeMetadataPrepared = true;
381
564
  };
382
565
  const syncRuntimeRefreshRequirement = () => {
383
- runtimeRefreshRequiredForCompilation = runtimeRefreshRequiredForCompilation || require_loader_anchors.hasWatchChanges(compiler);
566
+ runtimeRefreshRequiredForCompilation = runtimeRefreshRequiredForCompilation || hasWatchChanges(compiler);
384
567
  };
385
568
  const resetRuntimePreparation = () => {
386
569
  runtimeSetPrepared = false;
@@ -417,7 +600,6 @@ var UnifiedWebpackPluginV5 = class {
417
600
  weappTailwindcssPackageDir,
418
601
  shouldRewriteCssImports,
419
602
  runtimeLoaderPath,
420
- runtimeCssImportRewriteLoaderPath,
421
603
  getClassSetInLoader,
422
604
  getRuntimeWatchDependencies() {
423
605
  return {