weapp-tailwindcss 5.2.13 → 5.3.0

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 (62) hide show
  1. package/README.md +55 -8
  2. package/README.zh-CN.md +64 -0
  3. package/dist/bundlers/rspack/rule-match.d.ts +13 -0
  4. package/dist/bundlers/shared/source-candidates/scan-root.d.ts +1 -1
  5. package/dist/bundlers/shared/source-candidates/types-and-cache.d.ts +2 -0
  6. package/dist/bundlers/vite/generate-bundle/root-style-output.d.ts +7 -0
  7. package/dist/bundlers/vite/shared/create-framework-plugins.d.ts +1 -0
  8. package/dist/bundlers/vite/shared/framework-plugin-order.d.ts +2 -0
  9. package/dist/bundlers/vite/shared/framework-source-scan-session.d.ts +2 -2
  10. package/dist/{transform-BiHG42Rp.cjs → component-local-style-BirkN5f8.cjs} +33 -168
  11. package/dist/{transform-52FLRu-0.js → component-local-style-CFL4ClhS.js} +22 -174
  12. package/dist/generator/index.d.ts +2 -2
  13. package/dist/generator.cjs +7 -0
  14. package/dist/generator.js +2 -2
  15. package/dist/{gulp-DxKLSgXX.cjs → gulp-B0qcNiuP.cjs} +2 -2
  16. package/dist/{gulp-G--cGMcR.js → gulp-D1vDx4H1.js} +1 -1
  17. package/dist/gulp.cjs +1 -1
  18. package/dist/gulp.js +1 -1
  19. package/dist/{hmr-timing-iTua_Z55.js → hmr-timing-Dq1_msos.js} +19 -15
  20. package/dist/{hmr-timing-BtqnyxAO.cjs → hmr-timing-pF6k35pP.cjs} +1 -1
  21. package/dist/index.cjs +3 -3
  22. package/dist/index.js +3 -3
  23. package/dist/{pipeline-helpers-DnYpfbat.cjs → pipeline-helpers-DA5-EzbO.cjs} +1 -1
  24. package/dist/rspack.cjs +124 -7
  25. package/dist/rspack.js +124 -7
  26. package/dist/{source-candidate-scan-signature-Ggn8fzkT.cjs → source-candidate-scan-signature-DGQufJk3.cjs} +1 -1
  27. package/dist/{source-candidate-scan-signature-TKJIs7VF.js → source-candidate-scan-signature-DSsjYtlq.js} +1 -1
  28. package/dist/tailwindcss/candidates.d.ts +2 -2
  29. package/dist/transform-BYhgJszj.cjs +200 -0
  30. package/dist/transform-Ck31voUU.js +201 -0
  31. package/dist/uni-app-x/component-local-style.d.ts +3 -1
  32. package/dist/uni-app-x/transform.d.ts +2 -0
  33. package/dist/uni-app-x/vite/style-request.d.ts +1 -0
  34. package/dist/uni-app-x/vite/web-local-style.d.ts +6 -0
  35. package/dist/{v4-generation-core-D-zVR2mt.cjs → v4-generation-core-BEYGV4eB.cjs} +19 -15
  36. package/dist/{vite-B577QMUl.js → vite-DBgbFsei.js} +240 -82
  37. package/dist/{vite-BFWJAH16.cjs → vite-jftHIupF.cjs} +240 -82
  38. package/dist/vite.cjs +1 -1
  39. package/dist/vite.js +1 -1
  40. package/dist/weapp-tw-css-import-rewrite-loader.cjs +2 -2
  41. package/dist/{webpack-DLJkStre.js → webpack-BSIWFzAA.js} +3 -3
  42. package/dist/{webpack-DTqFKvcE.cjs → webpack-DhwW2cva.cjs} +4 -4
  43. package/dist/webpack.cjs +1 -1
  44. package/dist/webpack.js +1 -1
  45. package/package.json +9 -14
  46. package/README.en.md +0 -17
  47. package/bin/weapp-tailwindcss.cjs +0 -8
  48. package/dist/cli/context.d.ts +0 -3
  49. package/dist/cli/doctor/constants.d.ts +0 -7
  50. package/dist/cli/doctor/types.d.ts +0 -31
  51. package/dist/cli/doctor.d.ts +0 -4
  52. package/dist/cli/helpers/options/format.d.ts +0 -2
  53. package/dist/cli/helpers/options/parse.d.ts +0 -3
  54. package/dist/cli/helpers/options/resolve.d.ts +0 -1
  55. package/dist/cli/helpers/options.d.ts +0 -3
  56. package/dist/cli/helpers.d.ts +0 -4
  57. package/dist/cli/mount-options.d.ts +0 -4
  58. package/dist/cli/types.d.ts +0 -15
  59. package/dist/cli/vscode-entry.d.ts +0 -14
  60. package/dist/cli.cjs +0 -37065
  61. package/dist/cli.d.ts +0 -1
  62. package/dist/cli.js +0 -2298
@@ -1,8 +1,7 @@
1
1
  import { n as _defineProperty } from "./object-B-8IHefx.js";
2
- import { g as traverse$1, h as babelParse, i as analyzeSource, n as generateCode, o as JsTokenUpdater, p as replaceWxml, r as createAttributeMatcher, u as isClassContextLiteralPath } from "./wxml-B7OAVpXJ.js";
2
+ import { g as traverse, h as babelParse, i as analyzeSource, o as JsTokenUpdater, p as replaceWxml, u as isClassContextLiteralPath } from "./wxml-B7OAVpXJ.js";
3
3
  import { splitCandidateTokens } from "@tailwindcss-mangle/engine";
4
4
  import MagicString from "magic-string";
5
- import { NodeTypes, parse } from "@vue/compiler-dom";
6
5
  //#region src/uni-app-x/component-local-style-binding.ts
7
6
  const OPTIONS_CLASS_SECTIONS = /* @__PURE__ */ new Set(["computed", "methods"]);
8
7
  function readStaticName(path) {
@@ -59,14 +58,14 @@ function isClassAssignmentTarget(path, names) {
59
58
  return object.isThisExpression() && isClassBindingName(property, names);
60
59
  }
61
60
  function collectClassBindingNames(ast, names) {
62
- traverse$1(ast, { ReferencedIdentifier(path) {
61
+ traverse(ast, { ReferencedIdentifier(path) {
63
62
  names.add(path.node.name);
64
63
  } });
65
64
  }
66
65
  function collectClassBindingRoots(ast, names) {
67
66
  const roots = /* @__PURE__ */ new WeakSet();
68
67
  if (names.size === 0) return roots;
69
- traverse$1(ast, {
68
+ traverse(ast, {
70
69
  Program(path) {
71
70
  for (const name of names) {
72
71
  const binding = path.scope.getBinding(name);
@@ -121,6 +120,10 @@ function extractLiteralValue(path) {
121
120
  function createAlias(fileId, utility, index) {
122
121
  return `wtu-${createStableHash(`${fileId}:${utility}`)}-${index.toString(36)}`;
123
122
  }
123
+ function serializeApplyUtility(utility) {
124
+ if (!utility.endsWith("!") || utility.endsWith("\\!")) return utility;
125
+ return `${utility.slice(0, -1)}#{'!'}`;
126
+ }
124
127
  function isRuntimeCandidate(candidate, runtimeSet) {
125
128
  if (!runtimeSet || runtimeSet.size === 0) return false;
126
129
  return runtimeSet.has(candidate) || runtimeSet.has(replaceWxml(candidate));
@@ -180,6 +183,7 @@ var UniAppXComponentLocalStyleCollector = class {
180
183
  _defineProperty(this, "aliasByUtility", /* @__PURE__ */ new Map());
181
184
  _defineProperty(this, "aliasByLookup", /* @__PURE__ */ new Map());
182
185
  _defineProperty(this, "classBindingNames", /* @__PURE__ */ new Set());
186
+ _defineProperty(this, "deepUtilities", /* @__PURE__ */ new Set());
183
187
  }
184
188
  ensureAlias(utility) {
185
189
  const cached = this.aliasByUtility.get(utility);
@@ -200,8 +204,12 @@ var UniAppXComponentLocalStyleCollector = class {
200
204
  }
201
205
  return rewritten;
202
206
  }
203
- collectAndRewriteStaticClass(literal) {
204
- return this.rewriteLiteral(literal);
207
+ collectAndRewriteStaticClass(literal, options = {}) {
208
+ const rewritten = this.rewriteLiteral(literal);
209
+ if (options.deep) {
210
+ for (const candidate of splitCandidateTokens(literal)) if (this.aliasByUtility.has(candidate)) this.deepUtilities.add(candidate);
211
+ }
212
+ return rewritten;
205
213
  }
206
214
  collectRuntimeClasses(rawSource, options = {}) {
207
215
  const wrapped = options.wrapExpression ? `${EXPRESSION_WRAPPER_PREFIX}${rawSource}${EXPRESSION_WRAPPER_SUFFIX}` : rawSource;
@@ -219,7 +227,10 @@ var UniAppXComponentLocalStyleCollector = class {
219
227
  const classContext = options.wrapExpression || isClassContextLiteralPath(path) || isClassBindingLiteralPath(path, classBindingRoots);
220
228
  for (const candidate of candidates) {
221
229
  if (!candidate || !classContext || !isRuntimeCandidate(candidate, this.runtimeSet)) continue;
222
- if (!hasTopLevelVariant(candidate)) this.ensureAlias(candidate);
230
+ if (!hasTopLevelVariant(candidate)) {
231
+ this.ensureAlias(candidate);
232
+ if (options.deep) this.deepUtilities.add(candidate);
233
+ }
223
234
  }
224
235
  }
225
236
  } catch {}
@@ -283,176 +294,13 @@ var UniAppXComponentLocalStyleCollector = class {
283
294
  if (!this.hasStyles()) return "";
284
295
  const lines = [];
285
296
  for (const [utility, alias] of this.aliasByUtility) {
286
- lines.push(`.${alias} {`);
287
- lines.push(` @apply ${utility};`);
297
+ const selector = this.deepUtilities.has(utility) ? `.${alias}, :deep(.${alias})` : `.${alias}`;
298
+ lines.push(`${selector} {`);
299
+ lines.push(` @apply ${serializeApplyUtility(utility)};`);
288
300
  lines.push("}");
289
301
  }
290
302
  return `${lines.join("\n")}\n`;
291
303
  }
292
304
  };
293
305
  //#endregion
294
- //#region src/uni-app-x/transform.ts
295
- function traverse(node, visitor) {
296
- visitor(node);
297
- if (Array.isArray(node.children)) {
298
- for (const child of node.children) if (child && typeof child === "object" && "type" in child) traverse(child, visitor);
299
- }
300
- }
301
- function updateStaticAttribute(ms, prop, offset, content = prop.value?.content) {
302
- if (!prop.value) return;
303
- const start = offset + prop.value.loc.start.offset + 1;
304
- const end = offset + prop.value.loc.end.offset - 1;
305
- if (start < end) ms.update(start, end, replaceWxml(content ?? ""));
306
- }
307
- function updateStaticAttributeWithLocalStyle(ms, prop, offset, collector, content = prop.value?.content) {
308
- if (!prop.value) return;
309
- const start = offset + prop.value.loc.start.offset + 1;
310
- const end = offset + prop.value.loc.end.offset - 1;
311
- if (start < end) ms.update(start, end, collector.collectAndRewriteStaticClass(content ?? ""));
312
- }
313
- function updateDirectiveExpression(ms, prop, offset, jsHandler, runtimeSet) {
314
- if (prop.exp?.type !== NodeTypes.SIMPLE_EXPRESSION) return;
315
- const expression = prop.exp.content;
316
- const start = offset + prop.exp.loc.start.offset;
317
- const end = offset + prop.exp.loc.end.offset;
318
- if (start >= end) return;
319
- const generated = generateCode(expression, {
320
- jsHandler,
321
- runtimeSet,
322
- wrapExpression: true
323
- });
324
- ms.update(start, end, generated);
325
- }
326
- function updateDirectiveExpressionWithLocalStyle(ms, prop, offset, jsHandler, collector, runtimeSet) {
327
- if (prop.exp?.type !== NodeTypes.SIMPLE_EXPRESSION) return;
328
- const expression = prop.exp.content;
329
- const start = offset + prop.exp.loc.start.offset;
330
- const end = offset + prop.exp.loc.end.offset;
331
- if (start >= end) return;
332
- collector.collectRuntimeClasses(expression, { wrapExpression: true });
333
- const generated = generateCode(expression, {
334
- jsHandler,
335
- runtimeSet,
336
- wrapExpression: true
337
- });
338
- ms.update(start, end, collector.rewriteTransformedCode(generated, { wrapExpression: true }));
339
- }
340
- function shouldEnableLocalStyle(id, options) {
341
- if (options.enableComponentLocalStyle && shouldEnableComponentLocalStyle(id)) return true;
342
- if (options.enablePageLocalStyle && shouldEnablePageLocalStyle(id)) return true;
343
- return false;
344
- }
345
- function shouldHandleAttribute(tag, attrName, disabledDefaultTemplateHandler, matchCustomAttribute) {
346
- const lowerName = attrName.toLowerCase();
347
- const shouldHandleDefault = !disabledDefaultTemplateHandler && lowerName === "class";
348
- const shouldHandleCustom = matchCustomAttribute?.(tag, attrName) ?? false;
349
- return {
350
- shouldHandleDefault,
351
- shouldHandleCustom,
352
- shouldHandle: shouldHandleDefault || shouldHandleCustom
353
- };
354
- }
355
- const defaultCreateJsHandlerOptions = { babelParserOptions: { plugins: ["typescript"] } };
356
- const UVUE_NVUE_RE = /\.(?:uvue|nvue)(?:\?.*)?$/;
357
- const SFC_BLOCK_RE = /<(template|script|style)\b([^>]*)>([\s\S]*?)<\/\1>/gi;
358
- const SCRIPT_SETUP_RE = /(?:^|\s)setup(?:\s|=|$)/;
359
- const STYLE_SCOPED_RE = /(?:^|\s)scoped(?:\s|=|$)/i;
360
- function parseSfc(code) {
361
- const descriptor = {
362
- errors: [],
363
- styles: []
364
- };
365
- for (const match of code.matchAll(SFC_BLOCK_RE)) {
366
- const type = match[1];
367
- const attrs = match[2] ?? "";
368
- const content = match[3] ?? "";
369
- const full = match[0];
370
- const contentStart = (match.index ?? 0) + full.indexOf(">") + 1;
371
- const block = {
372
- content,
373
- start: contentStart,
374
- end: contentStart + content.length,
375
- attrs
376
- };
377
- if (type === "template" && !descriptor.template) {
378
- try {
379
- descriptor.template = {
380
- ...block,
381
- ast: parse(content)
382
- };
383
- } catch (error) {
384
- descriptor.errors.push(error);
385
- descriptor.template = block;
386
- }
387
- continue;
388
- }
389
- if (type === "script") {
390
- if (SCRIPT_SETUP_RE.test(attrs)) descriptor.scriptSetup ?? (descriptor.scriptSetup = block);
391
- else descriptor.script ?? (descriptor.script = block);
392
- continue;
393
- }
394
- if (type === "style") descriptor.styles.push(block);
395
- }
396
- return descriptor;
397
- }
398
- function transformUVue(code, id, jsHandler, runtimeSet, options = {}) {
399
- if (!UVUE_NVUE_RE.test(id)) return;
400
- const { customAttributesEntities, disabledDefaultTemplateHandler = false } = options;
401
- const matchCustomAttribute = createAttributeMatcher(customAttributesEntities);
402
- const ms = new MagicString(code);
403
- const descriptor = parseSfc(code);
404
- const localStyleCollector = shouldEnableLocalStyle(id, options) ? new UniAppXComponentLocalStyleCollector(id, runtimeSet) : void 0;
405
- if (descriptor.errors.length === 0) {
406
- if (descriptor.template?.ast) {
407
- const templateOffset = descriptor.template.start;
408
- traverse(descriptor.template.ast, (node) => {
409
- if (node.type !== NodeTypes.ELEMENT) return;
410
- const tag = node.tag;
411
- for (const prop of node.props) if (prop.type === NodeTypes.ATTRIBUTE) {
412
- const { shouldHandle, shouldHandleDefault } = shouldHandleAttribute(tag, prop.name, disabledDefaultTemplateHandler, matchCustomAttribute);
413
- if (!shouldHandle) continue;
414
- if (shouldHandleDefault && localStyleCollector) updateStaticAttributeWithLocalStyle(ms, prop, templateOffset, localStyleCollector);
415
- else updateStaticAttribute(ms, prop, templateOffset);
416
- if (shouldHandleDefault) continue;
417
- } else if (prop.type === NodeTypes.DIRECTIVE && prop.name === "bind" && prop.arg?.type === NodeTypes.SIMPLE_EXPRESSION && prop.arg.isStatic) {
418
- const attrName = prop.arg.content;
419
- const { shouldHandle } = shouldHandleAttribute(tag, attrName, disabledDefaultTemplateHandler, matchCustomAttribute);
420
- if (!shouldHandle) continue;
421
- if (attrName.toLowerCase() === "class" && localStyleCollector) updateDirectiveExpressionWithLocalStyle(ms, prop, templateOffset, jsHandler, localStyleCollector, runtimeSet);
422
- else updateDirectiveExpression(ms, prop, templateOffset, jsHandler, runtimeSet);
423
- }
424
- });
425
- }
426
- if (descriptor.script) {
427
- localStyleCollector?.collectRuntimeClasses(descriptor.script.content);
428
- const { code } = jsHandler(descriptor.script.content, runtimeSet ?? /* @__PURE__ */ new Set(), defaultCreateJsHandlerOptions);
429
- ms.update(descriptor.script.start, descriptor.script.end, localStyleCollector ? localStyleCollector.rewriteTransformedCode(code) : code);
430
- }
431
- if (descriptor.scriptSetup) {
432
- localStyleCollector?.collectRuntimeClasses(descriptor.scriptSetup.content);
433
- const { code } = jsHandler(descriptor.scriptSetup.content, runtimeSet ?? /* @__PURE__ */ new Set(), defaultCreateJsHandlerOptions);
434
- ms.update(descriptor.scriptSetup.start, descriptor.scriptSetup.end, localStyleCollector ? localStyleCollector.rewriteTransformedCode(code) : code);
435
- }
436
- if (localStyleCollector?.hasStyles()) {
437
- const scopedStyle = descriptor.styles.findLast((style) => STYLE_SCOPED_RE.test(style.attrs));
438
- if (scopedStyle) {
439
- const separator = scopedStyle.content.endsWith("\n") ? "" : "\n";
440
- ms.appendLeft(scopedStyle.end, `${separator}${localStyleCollector.toStyleRules()}`);
441
- } else ms.append(`\n${localStyleCollector.toStyleBlock()}`);
442
- }
443
- }
444
- const result = {
445
- code: ms.toString(),
446
- map: null
447
- };
448
- Object.defineProperty(result, "map", {
449
- configurable: true,
450
- enumerable: true,
451
- get() {
452
- return ms.generateMap();
453
- }
454
- });
455
- return result;
456
- }
457
- //#endregion
458
- export { transformUVue };
306
+ export { shouldEnableComponentLocalStyle as n, shouldEnablePageLocalStyle as r, UniAppXComponentLocalStyleCollector as t };
@@ -1,10 +1,10 @@
1
1
  import type { TailwindResolvedSource, WeappTailwindcssGenerator } from './types.js';
2
2
  import type { TailwindcssRuntimeLike } from '../types/index.js';
3
- import { resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp } from '../tailwindcss/v4-engine/index.js';
3
+ import { loadTailwindV4DesignSystem, resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp } from '../tailwindcss/v4-engine/index.js';
4
4
  export declare function createWeappTailwindcssGenerator(source: TailwindResolvedSource): WeappTailwindcssGenerator;
5
5
  export declare function resolveTailwindSourceFromRuntime(tailwindRuntime: TailwindcssRuntimeLike): Promise<TailwindResolvedSource>;
6
6
  export declare function createWeappTailwindcssGeneratorFromRuntime(tailwindRuntime: TailwindcssRuntimeLike): Promise<WeappTailwindcssGenerator>;
7
7
  export { normalizeWeappTailwindcssGeneratorOptions, } from './options.js';
8
- export { resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp, };
8
+ export { loadTailwindV4DesignSystem, resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp, };
9
9
  export type { NormalizedWeappTailwindcssGeneratorOptions, WeappTailwindcssGeneratorOptions, WeappTailwindcssGeneratorUserOptions, } from './options.js';
10
10
  export type { TailwindCandidateSource, TailwindGeneratorVersion, TailwindResolvedSource, TailwindV4CandidateSource, TailwindV4DesignSystem, TailwindV4Engine, TailwindV4GenerateOptions, TailwindV4GenerateResult, TailwindV4GenerateTarget, TailwindV4ResolvedSource, TailwindV4SourceOptions, WeappTailwindcssGenerateOptions, WeappTailwindcssGenerateResult, WeappTailwindcssGenerator, WeappTailwindcssGeneratorTarget, } from './types.js';
@@ -1,7 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
+ let _tailwindcss_mangle_engine = require("@tailwindcss-mangle/engine");
3
4
  exports.createWeappTailwindcssGenerator = require_generator.createWeappTailwindcssGenerator;
4
5
  exports.createWeappTailwindcssGeneratorFromRuntime = require_generator.createWeappTailwindcssGeneratorFromRuntime;
6
+ Object.defineProperty(exports, "loadTailwindV4DesignSystem", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return _tailwindcss_mangle_engine.loadTailwindV4DesignSystem;
10
+ }
11
+ });
5
12
  exports.normalizeWeappTailwindcssGeneratorOptions = require_generator.normalizeWeappTailwindcssGeneratorOptions;
6
13
  exports.resolveTailwindSourceFromRuntime = require_generator.resolveTailwindSourceFromRuntime;
7
14
  exports.resolveTailwindV4Source = require_generator.resolveTailwindV4Source;
package/dist/generator.js CHANGED
@@ -1,2 +1,2 @@
1
- import { Mt as transformTailwindV4CssToWeapp, d as resolveTailwindV4SourceFromRuntime, f as resolveTailwindV4SourceFromRuntimeOptions, i as normalizeWeappTailwindcssGeneratorOptions, jt as transformTailwindV4CssByTarget, n as createWeappTailwindcssGeneratorFromRuntime, p as resolveTailwindV4SourceOptionsFromRuntime, r as resolveTailwindSourceFromRuntime, t as createWeappTailwindcssGenerator, u as resolveTailwindV4Source } from "./generator-BP4WmgIo.js";
2
- export { createWeappTailwindcssGenerator, createWeappTailwindcssGeneratorFromRuntime, normalizeWeappTailwindcssGeneratorOptions, resolveTailwindSourceFromRuntime, resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp };
1
+ import { Lt as loadTailwindV4DesignSystem, Mt as transformTailwindV4CssToWeapp, d as resolveTailwindV4SourceFromRuntime, f as resolveTailwindV4SourceFromRuntimeOptions, i as normalizeWeappTailwindcssGeneratorOptions, jt as transformTailwindV4CssByTarget, n as createWeappTailwindcssGeneratorFromRuntime, p as resolveTailwindV4SourceOptionsFromRuntime, r as resolveTailwindSourceFromRuntime, t as createWeappTailwindcssGenerator, u as resolveTailwindV4Source } from "./generator-BP4WmgIo.js";
2
+ export { createWeappTailwindcssGenerator, createWeappTailwindcssGeneratorFromRuntime, loadTailwindV4DesignSystem, normalizeWeappTailwindcssGeneratorOptions, resolveTailwindSourceFromRuntime, resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp };
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
3
  const require_options = require("./options-DbYws6lr.cjs");
4
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
4
+ const require_v4_generation_core = require("./v4-generation-core-BEYGV4eB.cjs");
5
5
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
6
- const require_hmr_timing = require("./hmr-timing-BtqnyxAO.cjs");
6
+ const require_hmr_timing = require("./hmr-timing-pF6k35pP.cjs");
7
7
  const require_context = require("./context-vWlNv-Cf.cjs");
8
8
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
9
9
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
@@ -1,6 +1,6 @@
1
1
  import { Pt as getTailwindV4IncrementalGenerateCacheStats, Q as hasTailwindRootDirectives, _ as upsertTailwindV4CssSource, et as normalizeTailwindConfigDirectives, g as removeTailwindV4CssSource, h as hasConfiguredTailwindV4CssRoots, nt as normalizeTailwindSourceForGenerator, vt as prependConfigDirective } from "./generator-BP4WmgIo.js";
2
2
  import { f as resolveSourceScanEntries, l as getRuntimeClassSetSignature } from "./tailwindcss-C2K-vjJv.js";
3
- import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, B as splitLocalCssImports, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, G as removeRuntimeCompilationBuildStateFiles, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, Z as getCompilerShadowRunSnapshot, b as finalizeMiniProgramGeneratorCss, et as invalidateCompilationScope, j as createCssSourceTraceCacheSignature, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker, z as rewriteLocalCssImportRequestsForOutput } from "./hmr-timing-iTua_Z55.js";
3
+ import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, B as splitLocalCssImports, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, G as removeRuntimeCompilationBuildStateFiles, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, Z as getCompilerShadowRunSnapshot, b as finalizeMiniProgramGeneratorCss, et as invalidateCompilationScope, j as createCssSourceTraceCacheSignature, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker, z as rewriteLocalCssImportRequestsForOutput } from "./hmr-timing-Dq1_msos.js";
4
4
  import { m as createDebug } from "./wxml-B7OAVpXJ.js";
5
5
  import { l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, t as getCompilerContext, u as ensureRuntimeClassSet } from "./context-CKQKq4Mv.js";
6
6
  import fs from "node:fs";
package/dist/gulp.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_gulp = require("./gulp-DxKLSgXX.cjs");
2
+ const require_gulp = require("./gulp-B0qcNiuP.cjs");
3
3
  exports.WeappTailwindcss = require_gulp.createPlugins;
4
4
  exports.createPlugins = require_gulp.createPlugins;
5
5
  exports.weappTailwindcss = require_gulp.createPlugins;
package/dist/gulp.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as createPlugins } from "./gulp-G--cGMcR.js";
1
+ import { t as createPlugins } from "./gulp-D1vDx4H1.js";
2
2
  export { createPlugins as WeappTailwindcss, createPlugins, createPlugins as weappTailwindcss };
@@ -108,9 +108,10 @@ function createDefaultIgnoredSources(root, outDirIgnore, entries, explicit) {
108
108
  }] : []];
109
109
  }
110
110
  /** 创建与文件系统 root scan 一致的增量源码资格判断器。 */
111
- function createSourceCandidateEligibilityMatcher(roots) {
111
+ function createSourceCandidateEligibilityMatcher(roots, eligibleFiles) {
112
+ const eligibleFileSet = eligibleFiles === void 0 ? void 0 : new Set([...eligibleFiles].map(resolveSourceScanPath));
112
113
  const matchers = roots.map((options) => {
113
- const root = path.resolve(options.root);
114
+ const root = resolveSourceScanPath(options.root);
114
115
  const outDirIgnore = resolveOutDirIgnorePattern(root, options.outDir);
115
116
  const entries = options.entries;
116
117
  const explicit = options.explicit === true;
@@ -120,11 +121,11 @@ function createSourceCandidateEligibilityMatcher(roots) {
120
121
  if (explicit) return hasPositiveEntry && isFileMatchedByTailwindSourceEntries(resolvedFile, entries);
121
122
  const relative = path.relative(root, resolvedFile);
122
123
  if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) return false;
123
- return isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources);
124
+ return isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources) && (eligibleFileSet?.has(resolvedFile) ?? true);
124
125
  };
125
126
  });
126
127
  return (file) => {
127
- const resolvedFile = path.resolve(file);
128
+ const resolvedFile = resolveSourceScanPath(file);
128
129
  return matchers.some((matches) => matches(resolvedFile));
129
130
  };
130
131
  }
@@ -384,15 +385,19 @@ function createSourceCandidateStore(options = {}) {
384
385
  throw error;
385
386
  }
386
387
  }
387
- async function scanRoot({ entries, explicit, root, outDir }) {
388
- const files = await resolveSourceCandidateScanFiles({
388
+ async function resolveScanFiles({ entries, explicit, root, outDir }) {
389
+ return (await resolveSourceCandidateScanFiles({
389
390
  entries,
390
391
  explicit,
391
392
  filter: isSourceCandidateRequest,
392
393
  outDir,
393
394
  root
394
- });
395
- await Promise.all(files.map((file) => syncFile(resolveSourceScanPath(file))));
395
+ })).map(resolveSourceScanPath);
396
+ }
397
+ async function scanRoot(options) {
398
+ const resolvedFiles = await resolveScanFiles(options);
399
+ options.onFilesResolved?.(resolvedFiles);
400
+ await Promise.all(resolvedFiles.map(syncFile));
396
401
  }
397
402
  function replaceFinal(id, nextCandidates) {
398
403
  const normalizedId = cleanUrl(id);
@@ -578,6 +583,7 @@ function createSourceCandidateStore(options = {}) {
578
583
  syncFile,
579
584
  syncCurrentSource,
580
585
  syncCurrentFile,
586
+ resolveScanFiles,
581
587
  scanRoot,
582
588
  syncInline,
583
589
  remove,
@@ -5241,9 +5247,9 @@ function resolveCompilationDependencies(dependencies) {
5241
5247
  }));
5242
5248
  }
5243
5249
  async function executeGeneratorPipeline(context) {
5244
- return runCompilerOwnerActivity(context.runtimeState, () => executeGeneratorPipelineWithOwner(context));
5250
+ return runCompilerOwnerActivity(context.runtimeState, () => executeGeneratorPipelineWithOwner(context, getCompilationSessionPool(context.runtimeState), getTailwindGenerationSessionPool(context.runtimeState)));
5245
5251
  }
5246
- async function executeGeneratorPipelineWithOwner(context) {
5252
+ async function executeGeneratorPipelineWithOwner(context, compilationPool, generationSession) {
5247
5253
  const { cssHandlerOptions, debug, file, generatorBranch, generatorOptions, generatorRawSource, getSourceCandidatesForEntries, hasGeneratedCss, hasGeneratedMarkers, localImports, majorVersion, normalizeGeneratorSource, normalizedCssSources, options, opts, runtime, runtimeState, useMiniProgramCssBranch } = context;
5248
5254
  await runtimeState.readyPromise;
5249
5255
  const currentCssCandidates = collectGeneratorCssCandidates(generatorRawSource);
@@ -5266,7 +5272,6 @@ async function executeGeneratorPipelineWithOwner(context) {
5266
5272
  const generatorStyleOptions = resolveGeneratorStyleOptions(opts, cssHandlerOptions, generatorOptions.styleOptions);
5267
5273
  const configuredContainerCompat = hasConfiguredContainerCompatSources(generatorSourceRecords.map((record) => record.source));
5268
5274
  const sourceConcurrency = resolveGeneratorSourceConcurrency();
5269
- const generationSession = getTailwindGenerationSessionPool(runtimeState);
5270
5275
  const preparedGenerationInputs = (await runWithConcurrency(generatorSourceRecords.map((record, index) => async () => {
5271
5276
  const { metadata: sourceMetadata, source } = record;
5272
5277
  const sourceCss = options.deferCssAdaptation ? removeMatchingLocalCssImports(source.css, localImports) : source.css;
@@ -5326,7 +5331,7 @@ async function executeGeneratorPipelineWithOwner(context) {
5326
5331
  let compilationRevision;
5327
5332
  let generated;
5328
5333
  if (options.compilation?.enabled) {
5329
- const execution = await getCompilationSessionPool(runtimeState).run({
5334
+ const execution = await compilationPool.run({
5330
5335
  scope: options.compilation.scope,
5331
5336
  outputId: options.outputFile ?? file,
5332
5337
  changes: options.compilation.changes,
@@ -5582,9 +5587,9 @@ async function generateCssByGenerator(options) {
5582
5587
  //#endregion
5583
5588
  //#region src/bundlers/shared/generator-css/validate.ts
5584
5589
  async function validateCandidatesByGenerator(options) {
5585
- return runCompilerOwnerActivity(options.runtimeState, () => validateCandidatesByGeneratorWithOwner(options));
5590
+ return runCompilerOwnerActivity(options.runtimeState, () => validateCandidatesByGeneratorWithOwner(options, getTailwindGenerationSessionPool(options.runtimeState)));
5586
5591
  }
5587
- async function validateCandidatesByGeneratorWithOwner(options) {
5592
+ async function validateCandidatesByGeneratorWithOwner(options, generationSession) {
5588
5593
  const { candidates, cssHandlerOptions, debug, file, opts, rawSource, runtimeState } = options;
5589
5594
  const majorVersion = runtimeState.tailwindRuntime.majorVersion;
5590
5595
  if (majorVersion !== 4 || candidates.size === 0) return /* @__PURE__ */ new Set();
@@ -5599,7 +5604,6 @@ async function validateCandidatesByGeneratorWithOwner(options) {
5599
5604
  cssEntries: opts.cssEntries,
5600
5605
  runtime: candidates
5601
5606
  });
5602
- const generationSession = getTailwindGenerationSessionPool(runtimeState);
5603
5607
  const classSets = await Promise.all(sourceRecords.map(async ({ source }) => {
5604
5608
  return generationSession.validateCandidates(source, candidates);
5605
5609
  }));
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
3
+ const require_v4_generation_core = require("./v4-generation-core-BEYGV4eB.cjs");
4
4
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
5
5
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
6
6
  let node_process = require("node:process");
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_framework = require("./framework.cjs");
3
3
  const require_generator = require("./generator-BXrWA7Sj.cjs");
4
- const require_gulp = require("./gulp-DxKLSgXX.cjs");
4
+ const require_gulp = require("./gulp-B0qcNiuP.cjs");
5
5
  const require_postcss = require("./postcss.cjs");
6
- const require_vite = require("./vite-BFWJAH16.cjs");
7
- const require_webpack = require("./webpack-DTqFKvcE.cjs");
6
+ const require_vite = require("./vite-jftHIupF.cjs");
7
+ const require_webpack = require("./webpack-DhwW2cva.cjs");
8
8
  require("./webpack.cjs");
9
9
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
10
10
  exports.WeappTailwindcss = require_vite.WeappTailwindcss;
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { detectAppType, detectAppTypeFromEnv, detectAppTypeFromPackageJson, isMpxPackage, isRunningInHBuilderX, isTaroPackage, isUniAppPackage, isUniAppVitePackage, isUniAppXManifest, isUniAppXPackage, isWeappVitePackage, resolveImplicitAppTypeFromViteRoot, resolveMpxPlatform, resolvePlatform, resolveTaroPlatform, resolveUniAppXPlatform, resolveUniPlatform, resolveUniPlatformsFromEnv, resolveUniUtsPlatform } from "./framework.js";
2
2
  import { t as createWeappTailwindcssGenerator } from "./generator-BP4WmgIo.js";
3
- import { t as createPlugins } from "./gulp-G--cGMcR.js";
3
+ import { t as createPlugins } from "./gulp-D1vDx4H1.js";
4
4
  import weappTailwindcssPostcssPlugin from "./postcss.js";
5
- import { t as WeappTailwindcss } from "./vite-B577QMUl.js";
6
- import { n as weappTailwindcssPackageDir } from "./webpack-DLJkStre.js";
5
+ import { t as WeappTailwindcss } from "./vite-DBgbFsei.js";
6
+ import { n as weappTailwindcssPackageDir } from "./webpack-BSIWFzAA.js";
7
7
  import "./webpack.js";
8
8
  import { unitConversionComposeRules, unitConversionPresets } from "@weapp-tailwindcss/postcss";
9
9
  export { WeappTailwindcss, createPlugins, createWeappTailwindcssGenerator, detectAppType, detectAppTypeFromEnv, detectAppTypeFromPackageJson, isMpxPackage, isRunningInHBuilderX, isTaroPackage, isUniAppPackage, isUniAppVitePackage, isUniAppXManifest, isUniAppXPackage, isWeappVitePackage, resolveImplicitAppTypeFromViteRoot, resolveMpxPlatform, resolvePlatform, resolveTaroPlatform, resolveUniAppXPlatform, resolveUniPlatform, resolveUniPlatformsFromEnv, resolveUniUtsPlatform, unitConversionComposeRules, unitConversionPresets, weappTailwindcssPackageDir, weappTailwindcssPostcssPlugin };
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
3
+ const require_v4_generation_core = require("./v4-generation-core-BEYGV4eB.cjs");
4
4
  const require_defaults = require("./defaults.cjs");
5
5
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
6
6
  let node_path = require("node:path");
package/dist/rspack.cjs CHANGED
@@ -1,8 +1,113 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
3
- const require_webpack = require("./webpack-DTqFKvcE.cjs");
3
+ const require_v4_generation_core = require("./v4-generation-core-BEYGV4eB.cjs");
4
+ const require_webpack = require("./webpack-DhwW2cva.cjs");
4
5
  let node_path = require("node:path");
5
6
  node_path = require_rolldown_runtime.__toESM(node_path, 1);
7
+ //#region src/bundlers/rspack/rule-match.ts
8
+ const STYLE_RULE_PROBES = [
9
+ "weapp-tailwindcss.css",
10
+ "weapp-tailwindcss.module.css",
11
+ "weapp-tailwindcss.wxss",
12
+ "weapp-tailwindcss.acss",
13
+ "weapp-tailwindcss.ttss",
14
+ "weapp-tailwindcss.qss",
15
+ "weapp-tailwindcss.jxss",
16
+ "weapp-tailwindcss.scss",
17
+ "weapp-tailwindcss.module.scss",
18
+ "weapp-tailwindcss.less",
19
+ "weapp-tailwindcss.styl",
20
+ "weapp-tailwindcss.pcss"
21
+ ];
22
+ const SCRIPT_RULE_PROBES = [
23
+ "weapp-tailwindcss.js",
24
+ "weapp-tailwindcss.jsx",
25
+ "weapp-tailwindcss.mjs",
26
+ "weapp-tailwindcss.cjs",
27
+ "weapp-tailwindcss.ts",
28
+ "weapp-tailwindcss.tsx"
29
+ ];
30
+ const STYLE_RESOURCE_QUERY_PROBES = [
31
+ "type=style",
32
+ "type=styles",
33
+ "vue&type=style&index=0&lang.css"
34
+ ];
35
+ function isRegExpLike(value) {
36
+ return value instanceof RegExp;
37
+ }
38
+ function testRegexpMatcher(matcher, input) {
39
+ const lastIndex = matcher.lastIndex;
40
+ matcher.lastIndex = 0;
41
+ const result = matcher.test(input);
42
+ matcher.lastIndex = lastIndex;
43
+ return result;
44
+ }
45
+ function matchesStringCondition(condition, input) {
46
+ if (typeof condition === "string") return input.includes(condition);
47
+ if (isRegExpLike(condition)) return testRegexpMatcher(condition, input);
48
+ }
49
+ function matchesCondition(condition, input) {
50
+ if (Array.isArray(condition)) {
51
+ let hasStaticMatcher = false;
52
+ for (const item of condition) {
53
+ const matched = matchesCondition(item, input);
54
+ if (matched === true) return true;
55
+ hasStaticMatcher || (hasStaticMatcher = matched === false);
56
+ }
57
+ return hasStaticMatcher ? false : void 0;
58
+ }
59
+ if (typeof condition === "object" && condition !== null && !isRegExpLike(condition)) {
60
+ const group = condition;
61
+ if (Array.isArray(group.and)) {
62
+ let hasUnknown = false;
63
+ for (const item of group.and) {
64
+ const matched = matchesCondition(item, input);
65
+ if (matched === false) return false;
66
+ hasUnknown || (hasUnknown = matched === void 0);
67
+ }
68
+ return hasUnknown ? void 0 : true;
69
+ }
70
+ if (Array.isArray(group.or)) return matchesCondition(group.or, input);
71
+ if (group.not !== void 0) {
72
+ const matched = matchesCondition(group.not, input);
73
+ return matched === void 0 ? void 0 : !matched;
74
+ }
75
+ return;
76
+ }
77
+ return matchesStringCondition(condition, input);
78
+ }
79
+ function matchesAnyStringCondition(condition, inputs) {
80
+ let hasStaticMatcher = false;
81
+ for (const input of inputs) {
82
+ const matched = matchesCondition(condition, input);
83
+ if (matched === true) return true;
84
+ hasStaticMatcher || (hasStaticMatcher = matched === false);
85
+ }
86
+ return hasStaticMatcher ? false : void 0;
87
+ }
88
+ function matchesStyleResourceCondition(condition) {
89
+ if (typeof condition === "function") return;
90
+ if (typeof condition === "string" && require_v4_generation_core.isSourceStyleRequest(condition)) return true;
91
+ const matched = matchesAnyStringCondition(condition, STYLE_RULE_PROBES);
92
+ return typeof condition === "string" && matched === false ? void 0 : matched;
93
+ }
94
+ function matchesResourceQueryCondition(condition) {
95
+ if (typeof condition === "function") return;
96
+ return matchesAnyStringCondition(condition, STYLE_RESOURCE_QUERY_PROBES);
97
+ }
98
+ function resolveRuleCssMatch(rule) {
99
+ if (matchesAnyStringCondition(rule.include, STYLE_RULE_PROBES) === true) return true;
100
+ if (matchesAnyStringCondition(rule.exclude, STYLE_RULE_PROBES) === true) return false;
101
+ if (matchesStyleResourceCondition(rule.resource) === true) return true;
102
+ if (matchesAnyStringCondition(rule.test, STYLE_RULE_PROBES) === true) return true;
103
+ if (matchesAnyStringCondition(rule.test, SCRIPT_RULE_PROBES) === true) return false;
104
+ if (matchesResourceQueryCondition(rule.resourceQuery) === true) return true;
105
+ if (typeof rule.type === "string") {
106
+ if (rule.type.includes("css") || rule.type.includes("style")) return true;
107
+ if (rule.type.includes("javascript")) return false;
108
+ }
109
+ }
110
+ //#endregion
6
111
  //#region src/bundlers/rspack/index.ts
7
112
  const CSS_IMPORT_REWRITE_LOADER_NAME = "weapp-tw-css-import-rewrite-loader";
8
113
  const LIGHTNING_CSS_LOADER_NAME = "builtin:lightningcss-loader";
@@ -11,10 +116,20 @@ const POSTCSS_LOADER_NAME = "postcss-loader";
11
116
  function isRuleLike(value) {
12
117
  return typeof value === "object" && value !== null;
13
118
  }
14
- function normalizeUse(use) {
15
- if (Array.isArray(use)) return use;
119
+ function isRspackUseItem(value) {
120
+ return typeof value === "string" || typeof value === "object" && value !== null;
121
+ }
122
+ function normalizeRuleUse(use) {
123
+ if (Array.isArray(use)) return {
124
+ entries: use,
125
+ commit: (entries) => entries
126
+ };
16
127
  if (use === void 0) return;
17
- return [use];
128
+ if (!isRspackUseItem(use)) return;
129
+ return {
130
+ entries: [use],
131
+ commit: (entries) => entries.length === 1 ? entries[0] : entries
132
+ };
18
133
  }
19
134
  function getLoaderName(item) {
20
135
  if (typeof item === "string") return item;
@@ -35,8 +150,10 @@ function resolveCssImportRewriteOptions(options) {
35
150
  return cssImportRewriteLoader === true ? {} : cssImportRewriteLoader;
36
151
  }
37
152
  function patchRuleUse(rule, options) {
38
- let use = normalizeUse(rule.use);
39
- if (!use) return;
153
+ if (resolveRuleCssMatch(rule) === false) return;
154
+ const normalizedUse = normalizeRuleUse(rule.use);
155
+ if (!normalizedUse) return;
156
+ let use = normalizedUse.entries;
40
157
  if (options.removeLightningCssLoader) use = use.filter((item) => !includesLoaderName(item, LIGHTNING_CSS_LOADER_NAME));
41
158
  const cssImportRewriteOptions = resolveCssImportRewriteOptions(options);
42
159
  if (cssImportRewriteOptions) {
@@ -49,7 +166,7 @@ function patchRuleUse(rule, options) {
49
166
  use.splice(fallbackAnchorIndex + 1, 0, loaderEntry);
50
167
  }
51
168
  }
52
- rule.use = use;
169
+ rule.use = normalizedUse.commit(use);
53
170
  }
54
171
  function walkRspackRule(rule, options) {
55
172
  if (!isRuleLike(rule)) return;