weapp-tailwindcss 4.8.6 → 4.8.8

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 (60) hide show
  1. package/dist/chunk-2E724WCE.js +138 -0
  2. package/dist/{chunk-YUMLYTPN.js → chunk-2KZ4VTIA.js} +19 -117
  3. package/dist/{chunk-67CD2S5L.mjs → chunk-3IP5JCFZ.mjs} +1 -1
  4. package/dist/{chunk-ZSTF2AEN.js → chunk-3URI7W6X.js} +11 -1
  5. package/dist/{chunk-3XGTIDA6.mjs → chunk-6TO3GT5S.mjs} +476 -190
  6. package/dist/chunk-BYXBJQAS.js +1 -0
  7. package/dist/{chunk-UUHV4D5B.js → chunk-E7PFK6BW.js} +122 -43
  8. package/dist/{chunk-OPM3REFF.mjs → chunk-FB3ASCHC.mjs} +2 -2
  9. package/dist/{chunk-AUKQJILC.mjs → chunk-IH3HQU7U.mjs} +191 -127
  10. package/dist/{chunk-M4KLNEHT.js → chunk-L5ER4544.js} +5 -5
  11. package/dist/{chunk-UTZLVU3M.js → chunk-M4NERJO7.js} +1 -1
  12. package/dist/{chunk-SR4OOLTF.mjs → chunk-M5UEOYBI.mjs} +2 -2
  13. package/dist/{chunk-RJRLVYVJ.js → chunk-P3AQCOOM.js} +471 -185
  14. package/dist/chunk-PVJDRL3I.mjs +138 -0
  15. package/dist/{chunk-DKPIYG24.mjs → chunk-QF65JGNW.mjs} +11 -1
  16. package/dist/{chunk-B2IA5GC7.mjs → chunk-RUXC4E2M.mjs} +8 -106
  17. package/dist/{chunk-JW7P34IH.mjs → chunk-RYGPCUUT.mjs} +65 -58
  18. package/dist/{chunk-KWRRSLTH.mjs → chunk-UTCO4JMJ.mjs} +104 -25
  19. package/dist/{chunk-BWKCXQQH.js → chunk-WF4UE272.js} +211 -147
  20. package/dist/{chunk-AB45L5FP.js → chunk-XHR5K5ZT.js} +57 -51
  21. package/dist/{chunk-PMCA6PRQ.js → chunk-Y5XG47XY.js} +7 -7
  22. package/dist/cli.js +39 -32
  23. package/dist/cli.mjs +12 -5
  24. package/dist/core.js +11 -11
  25. package/dist/core.mjs +5 -5
  26. package/dist/css-macro/postcss.js +1 -1
  27. package/dist/css-macro/postcss.mjs +1 -1
  28. package/dist/css-macro.js +1 -1
  29. package/dist/css-macro.mjs +1 -1
  30. package/dist/defaults.js +3 -3
  31. package/dist/defaults.mjs +2 -2
  32. package/dist/gulp.js +7 -7
  33. package/dist/gulp.mjs +6 -6
  34. package/dist/index.js +11 -11
  35. package/dist/index.mjs +10 -10
  36. package/dist/postcss-html-transform.js +1 -1
  37. package/dist/postcss-html-transform.mjs +1 -1
  38. package/dist/presets.js +4 -4
  39. package/dist/presets.mjs +2 -2
  40. package/dist/reset.js +1 -1
  41. package/dist/reset.mjs +1 -1
  42. package/dist/types.d.mts +7 -0
  43. package/dist/types.d.ts +7 -0
  44. package/dist/types.js +1 -1
  45. package/dist/types.mjs +1 -1
  46. package/dist/vite.js +8 -8
  47. package/dist/vite.mjs +7 -7
  48. package/dist/{weapp-tw-runtime-loader.js → weapp-tw-css-import-rewrite-loader.js} +52 -15
  49. package/dist/weapp-tw-runtime-classset-loader.js +23 -0
  50. package/dist/webpack.d.mts +0 -1
  51. package/dist/webpack.d.ts +0 -1
  52. package/dist/webpack.js +9 -9
  53. package/dist/webpack.mjs +8 -8
  54. package/dist/webpack4.d.mts +0 -1
  55. package/dist/webpack4.d.ts +0 -1
  56. package/dist/webpack4.js +126 -44
  57. package/dist/webpack4.mjs +108 -26
  58. package/package.json +6 -6
  59. package/dist/chunk-EK7ECLBW.js +0 -61
  60. package/dist/chunk-NQS4LYVY.mjs +0 -61
package/dist/webpack4.mjs CHANGED
@@ -1,34 +1,43 @@
1
1
  import {
2
2
  applyTailwindcssCssImportRewrite,
3
- getCacheKey
4
- } from "./chunk-NQS4LYVY.mjs";
3
+ createLoaderAnchorFinders,
4
+ getCacheKey,
5
+ hasLoaderEntry,
6
+ isCssLikeModuleResource
7
+ } from "./chunk-PVJDRL3I.mjs";
5
8
  import {
6
9
  pushConcurrentTaskFactories,
7
10
  resolveOutputSpecifier,
8
11
  resolvePackageDir,
9
12
  toAbsoluteOutputPath
10
- } from "./chunk-JW7P34IH.mjs";
13
+ } from "./chunk-RYGPCUUT.mjs";
11
14
  import {
12
15
  processCachedTask
13
16
  } from "./chunk-RRHPTTCP.mjs";
14
17
  import {
15
18
  setupPatchRecorder
16
- } from "./chunk-SR4OOLTF.mjs";
19
+ } from "./chunk-M5UEOYBI.mjs";
17
20
  import {
18
21
  collectRuntimeClassSet,
19
22
  createDebug,
20
23
  getCompilerContext,
21
24
  pluginName,
22
25
  refreshTailwindRuntimeState
23
- } from "./chunk-B2IA5GC7.mjs";
24
- import "./chunk-3XGTIDA6.mjs";
25
- import "./chunk-DKPIYG24.mjs";
26
+ } from "./chunk-RUXC4E2M.mjs";
27
+ import {
28
+ ensureMpxTailwindcssAliases,
29
+ injectMpxCssRewritePreRules,
30
+ isMpx,
31
+ patchMpxLoaderResolve,
32
+ setupMpxTailwindcssRedirect
33
+ } from "./chunk-6TO3GT5S.mjs";
34
+ import "./chunk-QF65JGNW.mjs";
26
35
  import {
27
36
  getGroupedEntries
28
37
  } from "./chunk-ZNKIYZRQ.mjs";
29
38
  import {
30
39
  __dirname
31
- } from "./chunk-67CD2S5L.mjs";
40
+ } from "./chunk-3IP5JCFZ.mjs";
32
41
 
33
42
  // src/bundlers/webpack/BaseUnifiedPlugin/v4.ts
34
43
  import fs from "fs";
@@ -40,10 +49,10 @@ var weappTailwindcssPackageDir = resolvePackageDir("weapp-tailwindcss");
40
49
  var UnifiedWebpackPluginV4 = class {
41
50
  constructor(options = {}) {
42
51
  this.options = getCompilerContext(options);
43
- this.userSpecifiedRewriteCssImports = Object.prototype.hasOwnProperty.call(options, "rewriteCssImports");
44
52
  this.appType = this.options.appType;
45
53
  }
46
54
  apply(compiler) {
55
+ compiler.options = compiler.options || {};
47
56
  const {
48
57
  mainCssChunkMatcher,
49
58
  disabled,
@@ -55,6 +64,7 @@ var UnifiedWebpackPluginV4 = class {
55
64
  templateHandler,
56
65
  jsHandler,
57
66
  runtimeLoaderPath,
67
+ runtimeCssImportRewriteLoaderPath,
58
68
  cache,
59
69
  twPatcher: initialTwPatcher,
60
70
  refreshTailwindcssPatcher
@@ -62,12 +72,16 @@ var UnifiedWebpackPluginV4 = class {
62
72
  if (disabled) {
63
73
  return;
64
74
  }
65
- const shouldRewriteCssImports = this.options.rewriteCssImports !== false && (this.userSpecifiedRewriteCssImports || (initialTwPatcher.majorVersion ?? 0) >= 4);
75
+ const isTailwindcssV4 = (initialTwPatcher.majorVersion ?? 0) >= 4;
76
+ const shouldRewriteCssImports = isTailwindcssV4 && this.options.rewriteCssImports !== false;
77
+ const isMpxApp = isMpx(this.appType);
66
78
  if (shouldRewriteCssImports) {
67
79
  applyTailwindcssCssImportRewrite(compiler, {
68
80
  pkgDir: weappTailwindcssPackageDir,
69
- enabled: true
81
+ enabled: true,
82
+ appType: this.appType
70
83
  });
84
+ setupMpxTailwindcssRedirect(weappTailwindcssPackageDir, isMpxApp);
71
85
  }
72
86
  const patchRecorderState = setupPatchRecorder(initialTwPatcher, this.options.tailwindcssBasedir, {
73
87
  source: "runtime",
@@ -87,30 +101,98 @@ var UnifiedWebpackPluginV4 = class {
87
101
  await runtimeState.patchPromise;
88
102
  await collectRuntimeClassSet(runtimeState.twPatcher, { force: true, skipRefresh: true });
89
103
  }
90
- onLoad();
91
- const loader = runtimeLoaderPath ?? path.resolve(__dirname, "./weapp-tw-runtime-loader.js");
92
- const isExisted = fs.existsSync(loader);
104
+ const runtimeClassSetLoader = runtimeLoaderPath ?? path.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
105
+ const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? runtimeCssImportRewriteLoaderPath ?? path.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
106
+ const runtimeClassSetLoaderExists = fs.existsSync(runtimeClassSetLoader);
107
+ const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? fs.existsSync(runtimeCssImportRewriteLoader) : false;
93
108
  const runtimeLoaderRewriteOptions = shouldRewriteCssImports ? {
94
- pkgDir: weappTailwindcssPackageDir
109
+ pkgDir: weappTailwindcssPackageDir,
110
+ appType: this.appType
95
111
  } : void 0;
96
- const runtimeLoaderOptions = {
97
- getClassSet: getClassSetInLoader,
98
- rewriteCssImports: runtimeLoaderRewriteOptions
112
+ const classSetLoaderOptions = {
113
+ getClassSet: getClassSetInLoader
99
114
  };
100
- const createRuntimeLoaderEntry = () => ({
101
- loader,
102
- options: runtimeLoaderOptions,
115
+ const { findRewriteAnchor, findClassSetAnchor } = createLoaderAnchorFinders(this.appType);
116
+ const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? {
117
+ rewriteCssImports: runtimeLoaderRewriteOptions
118
+ } : void 0;
119
+ onLoad();
120
+ if (shouldRewriteCssImports && isMpxApp) {
121
+ ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
122
+ }
123
+ if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && isMpxApp) {
124
+ injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
125
+ }
126
+ const createRuntimeClassSetLoaderEntry = () => ({
127
+ loader: runtimeClassSetLoader,
128
+ options: classSetLoaderOptions,
103
129
  ident: null,
104
130
  type: null
105
131
  });
132
+ const createCssImportRewriteLoaderEntry = () => {
133
+ if (!runtimeCssImportRewriteLoader) {
134
+ return null;
135
+ }
136
+ return {
137
+ loader: runtimeCssImportRewriteLoader,
138
+ options: cssImportRewriteLoaderOptions,
139
+ ident: null,
140
+ type: null
141
+ };
142
+ };
106
143
  compiler.hooks.compilation.tap(pluginName, (compilation) => {
107
144
  compilation.hooks.normalModuleLoader.tap(pluginName, (_loaderContext, module) => {
108
- if (isExisted) {
109
- const idx = module.loaders.findIndex((x) => x.loader.includes("postcss-loader"));
110
- if (idx > -1) {
111
- module.loaders.splice(idx + 1, 0, createRuntimeLoaderEntry());
145
+ const hasRuntimeLoader = runtimeClassSetLoaderExists || runtimeCssImportRewriteLoaderExists;
146
+ if (!hasRuntimeLoader) {
147
+ return;
148
+ }
149
+ if (shouldRewriteCssImports && isMpx(this.appType) && typeof _loaderContext.resolve === "function") {
150
+ patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, true);
151
+ }
152
+ const loaderEntries = module.loaders || [];
153
+ let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
154
+ const classSetAnchorIdx = findClassSetAnchor(loaderEntries);
155
+ const isCssModule = isCssLikeModuleResource(module.resource, this.options.cssMatcher, this.appType);
156
+ if (process.env.WEAPP_TW_LOADER_DEBUG && isCssModule) {
157
+ debug("loader hook css module: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), { rewriteAnchorIdx, classSetAnchorIdx });
158
+ }
159
+ if (process.env.WEAPP_TW_LOADER_DEBUG && typeof module.resource === "string" && module.resource.includes("app.css")) {
160
+ debug("app.css module loaders=%o anchors=%o", loaderEntries.map((x) => x.loader), { rewriteAnchorIdx, classSetAnchorIdx });
161
+ } else if (process.env.WEAPP_TW_LOADER_DEBUG && typeof module.resource === "string" && module.resource.endsWith(".css")) {
162
+ debug("css module seen: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), { rewriteAnchorIdx, classSetAnchorIdx });
163
+ }
164
+ if (rewriteAnchorIdx === -1 && classSetAnchorIdx === -1 && !isCssModule) {
165
+ return;
166
+ }
167
+ const anchorlessInsert = (entry, position) => {
168
+ if (position === "after") {
169
+ loaderEntries.push(entry);
170
+ } else {
171
+ loaderEntries.unshift(entry);
172
+ }
173
+ };
174
+ if (runtimeLoaderRewriteOptions && runtimeCssImportRewriteLoaderExists && cssImportRewriteLoaderOptions && runtimeCssImportRewriteLoader) {
175
+ const existingIndex = loaderEntries.findIndex(
176
+ (entry) => entry.loader?.includes?.(runtimeCssImportRewriteLoader)
177
+ );
178
+ const rewriteEntry = existingIndex !== -1 ? loaderEntries.splice(existingIndex, 1)[0] : createCssImportRewriteLoaderEntry();
179
+ if (rewriteEntry) {
180
+ const anchorIndex = findRewriteAnchor(loaderEntries);
181
+ if (anchorIndex === -1) {
182
+ anchorlessInsert(rewriteEntry, "after");
183
+ } else {
184
+ loaderEntries.splice(anchorIndex + 1, 0, rewriteEntry);
185
+ }
186
+ rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
187
+ }
188
+ }
189
+ if (runtimeClassSetLoaderExists && !hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
190
+ const anchorIndex = findClassSetAnchor(loaderEntries);
191
+ if (anchorIndex === -1) {
192
+ anchorlessInsert(createRuntimeClassSetLoaderEntry(), "before");
112
193
  } else {
113
- module.loaders.push(createRuntimeLoaderEntry());
194
+ const insertIndex = anchorIndex === -1 ? rewriteAnchorIdx : anchorIndex;
195
+ loaderEntries.splice(insertIndex, 0, createRuntimeClassSetLoaderEntry());
114
196
  }
115
197
  }
116
198
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weapp-tailwindcss",
3
- "version": "4.8.6",
3
+ "version": "4.8.8",
4
4
  "description": "把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!",
5
5
  "author": "ice breaker <1324318532@qq.com>",
6
6
  "license": "MIT",
@@ -168,8 +168,8 @@
168
168
  "@babel/traverse": "~7.28.5",
169
169
  "@babel/types": "~7.28.5",
170
170
  "@tailwindcss-mangle/config": "^6.1.0",
171
- "@vue/compiler-dom": "^3.5.24",
172
- "@vue/compiler-sfc": "^3.5.24",
171
+ "@vue/compiler-dom": "^3.5.25",
172
+ "@vue/compiler-sfc": "^3.5.25",
173
173
  "@weapp-core/escape": "~5.0.1",
174
174
  "@weapp-core/regex": "~1.0.1",
175
175
  "cac": "^6.7.14",
@@ -183,10 +183,10 @@
183
183
  "semver": "~7.7.3",
184
184
  "tailwindcss-patch": "^8.4.2",
185
185
  "webpack-sources": "3.3.3",
186
- "yaml": "^2.8.1",
186
+ "yaml": "^2.8.2",
187
187
  "@weapp-tailwindcss/logger": "1.1.0",
188
- "@weapp-tailwindcss/shared": "1.1.1",
189
- "@weapp-tailwindcss/postcss": "2.0.4"
188
+ "@weapp-tailwindcss/postcss": "2.0.5",
189
+ "@weapp-tailwindcss/shared": "1.1.1"
190
190
  },
191
191
  "scripts": {
192
192
  "dev": "tsup --watch --sourcemap",
@@ -1,61 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
- var _chunkAB45L5FPjs = require('./chunk-AB45L5FP.js');
4
-
5
-
6
- var _chunkYUMLYTPNjs = require('./chunk-YUMLYTPN.js');
7
-
8
- // src/bundlers/webpack/shared/css-imports.ts
9
- var CSS_EXT_RE = /\.(?:css|scss|sass|less|styl|pcss)$/i;
10
- function stripResourceQuery(file) {
11
- let idx = file.indexOf("?");
12
- if (idx === -1) {
13
- idx = file.indexOf("&");
14
- }
15
- return idx === -1 ? file : file.slice(0, idx);
16
- }
17
- function rewriteTailwindcssRequestForCss(data, pkgDir) {
18
- if (!data) {
19
- return;
20
- }
21
- const request = data.request;
22
- if (!request) {
23
- return;
24
- }
25
- if (request !== "tailwindcss" && request !== "tailwindcss$" && !request.startsWith("tailwindcss/")) {
26
- return;
27
- }
28
- const issuer = _optionalChain([data, 'access', _ => _.contextInfo, 'optionalAccess', _2 => _2.issuer]);
29
- if (!issuer) {
30
- return;
31
- }
32
- const normalizedIssuer = stripResourceQuery(issuer);
33
- if (!CSS_EXT_RE.test(normalizedIssuer)) {
34
- return;
35
- }
36
- const resolved = _chunkAB45L5FPjs.resolveTailwindcssImport.call(void 0, request, pkgDir);
37
- if (!resolved) {
38
- return;
39
- }
40
- data.request = resolved;
41
- }
42
- function applyTailwindcssCssImportRewrite(compiler, options) {
43
- if (!options.enabled) {
44
- return;
45
- }
46
- compiler.hooks.normalModuleFactory.tap(_chunkYUMLYTPNjs.pluginName, (factory) => {
47
- factory.hooks.beforeResolve.tap(_chunkYUMLYTPNjs.pluginName, (data) => {
48
- rewriteTailwindcssRequestForCss(data, options.pkgDir);
49
- });
50
- });
51
- }
52
-
53
- // src/bundlers/webpack/BaseUnifiedPlugin/shared.ts
54
- function getCacheKey(filename) {
55
- return filename;
56
- }
57
-
58
-
59
-
60
-
61
- exports.applyTailwindcssCssImportRewrite = applyTailwindcssCssImportRewrite; exports.getCacheKey = getCacheKey;
@@ -1,61 +0,0 @@
1
- import {
2
- resolveTailwindcssImport
3
- } from "./chunk-JW7P34IH.mjs";
4
- import {
5
- pluginName
6
- } from "./chunk-B2IA5GC7.mjs";
7
-
8
- // src/bundlers/webpack/shared/css-imports.ts
9
- var CSS_EXT_RE = /\.(?:css|scss|sass|less|styl|pcss)$/i;
10
- function stripResourceQuery(file) {
11
- let idx = file.indexOf("?");
12
- if (idx === -1) {
13
- idx = file.indexOf("&");
14
- }
15
- return idx === -1 ? file : file.slice(0, idx);
16
- }
17
- function rewriteTailwindcssRequestForCss(data, pkgDir) {
18
- if (!data) {
19
- return;
20
- }
21
- const request = data.request;
22
- if (!request) {
23
- return;
24
- }
25
- if (request !== "tailwindcss" && request !== "tailwindcss$" && !request.startsWith("tailwindcss/")) {
26
- return;
27
- }
28
- const issuer = data.contextInfo?.issuer;
29
- if (!issuer) {
30
- return;
31
- }
32
- const normalizedIssuer = stripResourceQuery(issuer);
33
- if (!CSS_EXT_RE.test(normalizedIssuer)) {
34
- return;
35
- }
36
- const resolved = resolveTailwindcssImport(request, pkgDir);
37
- if (!resolved) {
38
- return;
39
- }
40
- data.request = resolved;
41
- }
42
- function applyTailwindcssCssImportRewrite(compiler, options) {
43
- if (!options.enabled) {
44
- return;
45
- }
46
- compiler.hooks.normalModuleFactory.tap(pluginName, (factory) => {
47
- factory.hooks.beforeResolve.tap(pluginName, (data) => {
48
- rewriteTailwindcssRequestForCss(data, options.pkgDir);
49
- });
50
- });
51
- }
52
-
53
- // src/bundlers/webpack/BaseUnifiedPlugin/shared.ts
54
- function getCacheKey(filename) {
55
- return filename;
56
- }
57
-
58
- export {
59
- applyTailwindcssCssImportRewrite,
60
- getCacheKey
61
- };