weapp-tailwindcss 4.11.2 → 4.12.0-alpha.2
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/README.md +38 -0
- package/bin/weapp-tailwindcss.js +21 -1
- package/dist/{chunk-AV3XB6EQ.js → chunk-2A4NRLSY.js} +5 -5
- package/dist/{chunk-WJIRXC26.js → chunk-6JBFHYFM.js} +134 -128
- package/dist/{chunk-OMARW5NC.mjs → chunk-AYJ4HLWZ.mjs} +4 -2
- package/dist/{chunk-W3DXDWYC.mjs → chunk-CMNCGACY.mjs} +66 -60
- package/dist/{chunk-ZZ36BKM5.mjs → chunk-CQMHHQRN.mjs} +6 -2
- package/dist/{chunk-OYSABARD.js → chunk-E7I5TW5K.js} +3 -2
- package/dist/{chunk-7LKMJZD2.js → chunk-GMKSBLNY.js} +2 -2
- package/dist/{chunk-EFBQ4SQR.mjs → chunk-HL3US2OT.mjs} +1 -1
- package/dist/{chunk-AB2RGZQO.mjs → chunk-LWEVOVRD.mjs} +144 -76
- package/dist/{chunk-QK6VNNNL.js → chunk-NIS74SI6.js} +8 -6
- package/dist/{chunk-CRDOWYG4.js → chunk-ONLKZIRQ.js} +1 -1
- package/dist/{chunk-3QHYEMEW.js → chunk-PAAX4FDD.js} +45 -40
- package/dist/{chunk-JIERVBTX.mjs → chunk-SHDJA4GG.mjs} +1 -1
- package/dist/{chunk-SUKOZ6OG.js → chunk-SRAG3FST.js} +10 -6
- package/dist/{chunk-TT5WHNGS.js → chunk-YVRX3F6S.js} +149 -81
- package/dist/{chunk-2LH6PZH3.mjs → chunk-ZCH4YINE.mjs} +3 -2
- package/dist/{chunk-VGPAKLMZ.mjs → chunk-ZGIN2OAY.mjs} +12 -7
- package/dist/cli.js +2233 -158
- package/dist/cli.mjs +2238 -163
- package/dist/core.d.mts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +14 -9
- package/dist/core.mjs +10 -5
- package/dist/css-macro/postcss.js +4 -4
- package/dist/css-macro/postcss.mjs +2 -2
- package/dist/css-macro.js +5 -5
- package/dist/css-macro.mjs +2 -2
- package/dist/defaults.d.mts +1 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/defaults.js +1 -1
- package/dist/defaults.mjs +1 -1
- package/dist/gulp.d.mts +1 -1
- package/dist/gulp.d.ts +1 -1
- package/dist/gulp.js +5 -5
- package/dist/gulp.mjs +4 -4
- package/dist/{index-CoXntW_P.d.mts → index-BXrmQelt.d.mts} +29 -1
- package/dist/{index-CoXntW_P.d.ts → index-BXrmQelt.d.ts} +29 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -9
- package/dist/index.mjs +7 -7
- package/dist/postcss-html-transform.js +1 -1
- package/dist/postcss-html-transform.mjs +1 -1
- package/dist/presets.d.mts +8 -1
- package/dist/presets.d.ts +8 -1
- package/dist/presets.js +7 -6
- package/dist/presets.mjs +3 -2
- package/dist/reset.d.mts +1 -31
- package/dist/reset.d.ts +3 -32
- package/dist/reset.js +3 -160
- package/dist/reset.mjs +3 -160
- package/dist/types.d.mts +2 -2
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/dist/types.mjs +1 -1
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.js +6 -6
- package/dist/vite.mjs +4 -4
- package/dist/weapp-tw-css-import-rewrite-loader.js +10 -5
- package/dist/weapp-tw-runtime-classset-loader.js +9 -4
- package/dist/webpack.d.mts +1 -1
- package/dist/webpack.d.ts +1 -1
- package/dist/webpack.js +7 -7
- package/dist/webpack.mjs +5 -5
- package/dist/webpack4.d.mts +1 -1
- package/dist/webpack4.d.ts +1 -1
- package/dist/webpack4.js +65 -56
- package/dist/webpack4.mjs +35 -26
- package/package.json +12 -7
- package/scripts/postinstall.mjs +59 -0
package/dist/webpack4.js
CHANGED
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunk2A4NRLSYjs = require('./chunk-2A4NRLSY.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkGMKSBLNYjs = require('./chunk-GMKSBLNY.js');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
var _chunkOF6MFURRjs = require('./chunk-OF6MFURR.js');
|
|
@@ -27,15 +27,16 @@ var _chunkOF6MFURRjs = require('./chunk-OF6MFURR.js');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var _chunkTT5WHNGSjs = require('./chunk-TT5WHNGS.js');
|
|
31
30
|
|
|
31
|
+
var _chunkYVRX3F6Sjs = require('./chunk-YVRX3F6S.js');
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
|
|
34
|
+
var _chunkNIS74SI6js = require('./chunk-NIS74SI6.js');
|
|
34
35
|
require('./chunk-A5PB4KZT.js');
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
var _chunkDYLQ6UOIjs = require('./chunk-DYLQ6UOI.js');
|
|
38
|
-
require('./chunk-
|
|
39
|
+
require('./chunk-ONLKZIRQ.js');
|
|
39
40
|
|
|
40
41
|
// src/bundlers/webpack/BaseUnifiedPlugin/v4.ts
|
|
41
42
|
var _process = require('process'); var _process2 = _interopRequireDefault(_process);
|
|
@@ -50,6 +51,13 @@ function resolveWebpackStaleClassNameFallback(option, _compiler) {
|
|
|
50
51
|
}
|
|
51
52
|
return false;
|
|
52
53
|
}
|
|
54
|
+
function toWebpackV4AssetCompilation(compilation) {
|
|
55
|
+
return compilation;
|
|
56
|
+
}
|
|
57
|
+
function readWebpackV4AssetSource(asset) {
|
|
58
|
+
const source = asset.source();
|
|
59
|
+
return typeof source === "string" ? source : source.toString();
|
|
60
|
+
}
|
|
53
61
|
function setupWebpackV4EmitHook(options) {
|
|
54
62
|
const {
|
|
55
63
|
compiler,
|
|
@@ -59,7 +67,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
59
67
|
debug: debug2
|
|
60
68
|
} = options;
|
|
61
69
|
const cssHandlerOptionsCache = /* @__PURE__ */ new Map();
|
|
62
|
-
compiler.hooks.emit.tapPromise(
|
|
70
|
+
compiler.hooks.emit.tapPromise(_chunkYVRX3F6Sjs.pluginName, async (compilation) => {
|
|
63
71
|
await runtimeState.patchPromise;
|
|
64
72
|
compilerOptions.onStart();
|
|
65
73
|
debug2("start");
|
|
@@ -68,32 +76,32 @@ function setupWebpackV4EmitHook(options) {
|
|
|
68
76
|
compilerOptions.cache.calcHashValueChanged(chunk.id, chunk.hash);
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
|
-
const
|
|
72
|
-
const
|
|
79
|
+
const assetCompilation = toWebpackV4AssetCompilation(compilation);
|
|
80
|
+
const assetHashByChunk = _chunk2A4NRLSYjs.createAssetHashByChunkMap.call(void 0, compilation.chunks);
|
|
81
|
+
const assets = assetCompilation.assets;
|
|
73
82
|
const entries = Object.entries(assets);
|
|
74
83
|
const outputDir = _optionalChain([compiler, 'access', _ => _.options, 'optionalAccess', _2 => _2.output, 'optionalAccess', _3 => _3.path]) ? _path2.default.resolve(compiler.options.output.path) : _process2.default.cwd();
|
|
75
84
|
const jsAssets = /* @__PURE__ */ new Map();
|
|
76
85
|
for (const [file] of entries) {
|
|
77
86
|
if (compilerOptions.jsMatcher(file) || compilerOptions.wxsMatcher(file)) {
|
|
78
|
-
const absolute =
|
|
87
|
+
const absolute = _chunkGMKSBLNYjs.toAbsoluteOutputPath.call(void 0, file, outputDir);
|
|
79
88
|
jsAssets.set(absolute, file);
|
|
80
89
|
}
|
|
81
90
|
}
|
|
82
91
|
const moduleGraphOptions = {
|
|
83
92
|
resolve(specifier, importer) {
|
|
84
|
-
return
|
|
93
|
+
return _chunkGMKSBLNYjs.resolveOutputSpecifier.call(void 0, specifier, importer, outputDir, (candidate) => jsAssets.has(candidate));
|
|
85
94
|
},
|
|
86
95
|
load: (id) => {
|
|
87
96
|
const assetName = jsAssets.get(id);
|
|
88
97
|
if (!assetName) {
|
|
89
98
|
return void 0;
|
|
90
99
|
}
|
|
91
|
-
const assetSource =
|
|
100
|
+
const assetSource = assetCompilation.assets[assetName];
|
|
92
101
|
if (!assetSource) {
|
|
93
102
|
return void 0;
|
|
94
103
|
}
|
|
95
|
-
|
|
96
|
-
return typeof source === "string" ? source : source.toString();
|
|
104
|
+
return readWebpackV4AssetSource(assetSource);
|
|
97
105
|
},
|
|
98
106
|
filter(id) {
|
|
99
107
|
return jsAssets.has(id);
|
|
@@ -108,17 +116,16 @@ function setupWebpackV4EmitHook(options) {
|
|
|
108
116
|
if (!assetName) {
|
|
109
117
|
continue;
|
|
110
118
|
}
|
|
111
|
-
const assetSource =
|
|
119
|
+
const assetSource = assetCompilation.assets[assetName];
|
|
112
120
|
if (!assetSource) {
|
|
113
121
|
continue;
|
|
114
122
|
}
|
|
115
|
-
const
|
|
116
|
-
const previous = typeof previousSource === "string" ? previousSource : previousSource.toString();
|
|
123
|
+
const previous = readWebpackV4AssetSource(assetSource);
|
|
117
124
|
if (previous === code) {
|
|
118
125
|
continue;
|
|
119
126
|
}
|
|
120
127
|
const source = new (0, _webpacksources.ConcatSource)(code);
|
|
121
|
-
|
|
128
|
+
assetCompilation.updateAsset(assetName, source);
|
|
122
129
|
compilerOptions.onUpdate(assetName, previous, code);
|
|
123
130
|
debug2("js linked handle: %s", assetName);
|
|
124
131
|
}
|
|
@@ -145,7 +152,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
145
152
|
return created;
|
|
146
153
|
};
|
|
147
154
|
const staleClassNameFallback = resolveWebpackStaleClassNameFallback(compilerOptions.staleClassNameFallback, compiler);
|
|
148
|
-
const runtimeSet = await
|
|
155
|
+
const runtimeSet = await _chunkYVRX3F6Sjs.ensureRuntimeClassSet.call(void 0, runtimeState, {
|
|
149
156
|
// webpack 的 script-only 热更新可能不会触发 runtime classset loader,
|
|
150
157
|
// 这里强制收集可避免沿用上轮 class set,保证 JS 仅按最新集合精确命中。
|
|
151
158
|
forceCollect: true,
|
|
@@ -159,7 +166,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
159
166
|
if (Array.isArray(groupedEntries.html)) {
|
|
160
167
|
for (const element of groupedEntries.html) {
|
|
161
168
|
const [file, originalSource] = element;
|
|
162
|
-
const rawSource = originalSource
|
|
169
|
+
const rawSource = readWebpackV4AssetSource(originalSource);
|
|
163
170
|
const cacheKey = file;
|
|
164
171
|
const chunkHash = assetHashByChunk.get(file);
|
|
165
172
|
tasks.push(
|
|
@@ -170,7 +177,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
170
177
|
rawSource,
|
|
171
178
|
hash: chunkHash,
|
|
172
179
|
applyResult(source) {
|
|
173
|
-
|
|
180
|
+
assetCompilation.updateAsset(file, source);
|
|
174
181
|
},
|
|
175
182
|
onCacheHit() {
|
|
176
183
|
debug2("html cache hit: %s", file);
|
|
@@ -191,14 +198,13 @@ function setupWebpackV4EmitHook(options) {
|
|
|
191
198
|
const jsTaskFactories = [];
|
|
192
199
|
if (Array.isArray(groupedEntries.js)) {
|
|
193
200
|
for (const [file] of groupedEntries.js) {
|
|
194
|
-
const cacheKey =
|
|
195
|
-
const assetSource =
|
|
201
|
+
const cacheKey = _chunk2A4NRLSYjs.getCacheKey.call(void 0, file);
|
|
202
|
+
const assetSource = assetCompilation.assets[file];
|
|
196
203
|
if (!assetSource) {
|
|
197
204
|
continue;
|
|
198
205
|
}
|
|
199
|
-
const
|
|
200
|
-
const
|
|
201
|
-
const absoluteFile = _chunk7LKMJZD2js.toAbsoluteOutputPath.call(void 0, file, outputDir);
|
|
206
|
+
const initialRawSource = readWebpackV4AssetSource(assetSource);
|
|
207
|
+
const absoluteFile = _chunkGMKSBLNYjs.toAbsoluteOutputPath.call(void 0, file, outputDir);
|
|
202
208
|
const chunkHash = assetHashByChunk.get(file);
|
|
203
209
|
const sourceAwareHash = chunkHash ? `${chunkHash}:${compilerOptions.cache.computeHash(initialRawSource)}` : void 0;
|
|
204
210
|
jsTaskFactories.push(async () => {
|
|
@@ -209,16 +215,15 @@ function setupWebpackV4EmitHook(options) {
|
|
|
209
215
|
rawSource: initialRawSource,
|
|
210
216
|
hash: sourceAwareHash,
|
|
211
217
|
applyResult(source) {
|
|
212
|
-
|
|
218
|
+
assetCompilation.updateAsset(file, source);
|
|
213
219
|
},
|
|
214
220
|
onCacheHit() {
|
|
215
221
|
debug2("js cache hit: %s", file);
|
|
216
222
|
},
|
|
217
223
|
transform: async () => {
|
|
218
|
-
const currentAsset =
|
|
219
|
-
const
|
|
220
|
-
const
|
|
221
|
-
const { code, linked } = await compilerOptions.jsHandler(currentSource, runtimeSet, {
|
|
224
|
+
const currentAsset = assetCompilation.assets[file];
|
|
225
|
+
const currentSource = currentAsset ? readWebpackV4AssetSource(currentAsset) : "";
|
|
226
|
+
const handlerOptions = {
|
|
222
227
|
staleClassNameFallback,
|
|
223
228
|
tailwindcssMajorVersion: runtimeState.twPatcher.majorVersion,
|
|
224
229
|
filename: absoluteFile,
|
|
@@ -226,7 +231,11 @@ function setupWebpackV4EmitHook(options) {
|
|
|
226
231
|
babelParserOptions: {
|
|
227
232
|
sourceFilename: absoluteFile
|
|
228
233
|
}
|
|
229
|
-
}
|
|
234
|
+
};
|
|
235
|
+
if (_chunkYVRX3F6Sjs.shouldSkipJsTransform.call(void 0, currentSource, handlerOptions)) {
|
|
236
|
+
return { result: new (0, _webpacksources.ConcatSource)(currentSource) };
|
|
237
|
+
}
|
|
238
|
+
const { code, linked } = await compilerOptions.jsHandler(currentSource, runtimeSet, handlerOptions);
|
|
230
239
|
const source = new (0, _webpacksources.ConcatSource)(code);
|
|
231
240
|
compilerOptions.onUpdate(file, currentSource, code);
|
|
232
241
|
debug2("js handle: %s", file);
|
|
@@ -242,7 +251,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
242
251
|
if (Array.isArray(groupedEntries.css)) {
|
|
243
252
|
for (const element of groupedEntries.css) {
|
|
244
253
|
const [file, originalSource] = element;
|
|
245
|
-
const rawSource = originalSource
|
|
254
|
+
const rawSource = readWebpackV4AssetSource(originalSource);
|
|
246
255
|
const cacheKey = file;
|
|
247
256
|
const chunkHash = assetHashByChunk.get(file);
|
|
248
257
|
tasks.push(
|
|
@@ -253,7 +262,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
253
262
|
rawSource,
|
|
254
263
|
hash: chunkHash,
|
|
255
264
|
applyResult(source) {
|
|
256
|
-
|
|
265
|
+
assetCompilation.updateAsset(file, source);
|
|
257
266
|
},
|
|
258
267
|
onCacheHit() {
|
|
259
268
|
debug2("css cache hit: %s", file);
|
|
@@ -272,7 +281,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
272
281
|
);
|
|
273
282
|
}
|
|
274
283
|
}
|
|
275
|
-
|
|
284
|
+
_chunkGMKSBLNYjs.pushConcurrentTaskFactories.call(void 0, tasks, jsTaskFactories);
|
|
276
285
|
await Promise.all(tasks);
|
|
277
286
|
debug2("end");
|
|
278
287
|
compilerOptions.onEnd();
|
|
@@ -295,9 +304,9 @@ function setupWebpackV4Loaders(options) {
|
|
|
295
304
|
getClassSetInLoader,
|
|
296
305
|
debug: debug2
|
|
297
306
|
} = options;
|
|
298
|
-
const isMpxApp =
|
|
307
|
+
const isMpxApp = _chunk2A4NRLSYjs.isMpx.call(void 0, appType);
|
|
299
308
|
if (shouldRewriteCssImports && isMpxApp) {
|
|
300
|
-
|
|
309
|
+
_chunk2A4NRLSYjs.ensureMpxTailwindcssAliases.call(void 0, compiler, weappTailwindcssPackageDir2);
|
|
301
310
|
}
|
|
302
311
|
const runtimeClassSetLoader = _nullishCoalesce(runtimeLoaderPath, () => ( _path2.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js")));
|
|
303
312
|
const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? _nullishCoalesce(runtimeCssImportRewriteLoaderPath, () => ( _path2.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js"))) : void 0;
|
|
@@ -310,12 +319,12 @@ function setupWebpackV4Loaders(options) {
|
|
|
310
319
|
const classSetLoaderOptions = {
|
|
311
320
|
getClassSet: getClassSetInLoader
|
|
312
321
|
};
|
|
313
|
-
const { findRewriteAnchor, findClassSetAnchor } =
|
|
322
|
+
const { findRewriteAnchor, findClassSetAnchor } = _chunk2A4NRLSYjs.createLoaderAnchorFinders.call(void 0, appType);
|
|
314
323
|
const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? {
|
|
315
324
|
rewriteCssImports: runtimeLoaderRewriteOptions
|
|
316
325
|
} : void 0;
|
|
317
326
|
if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && isMpxApp) {
|
|
318
|
-
|
|
327
|
+
_chunk2A4NRLSYjs.injectMpxCssRewritePreRules.call(void 0, compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
|
|
319
328
|
}
|
|
320
329
|
const createRuntimeClassSetLoaderEntry = () => ({
|
|
321
330
|
loader: runtimeClassSetLoader,
|
|
@@ -334,19 +343,19 @@ function setupWebpackV4Loaders(options) {
|
|
|
334
343
|
type: null
|
|
335
344
|
};
|
|
336
345
|
};
|
|
337
|
-
compiler.hooks.compilation.tap(
|
|
338
|
-
compilation.hooks.normalModuleLoader.tap(
|
|
346
|
+
compiler.hooks.compilation.tap(_chunkYVRX3F6Sjs.pluginName, (compilation) => {
|
|
347
|
+
compilation.hooks.normalModuleLoader.tap(_chunkYVRX3F6Sjs.pluginName, (_loaderContext, module) => {
|
|
339
348
|
const hasRuntimeLoader = runtimeClassSetLoaderExists || runtimeCssImportRewriteLoaderExists;
|
|
340
349
|
if (!hasRuntimeLoader) {
|
|
341
350
|
return;
|
|
342
351
|
}
|
|
343
|
-
if (shouldRewriteCssImports &&
|
|
344
|
-
|
|
352
|
+
if (shouldRewriteCssImports && _chunk2A4NRLSYjs.isMpx.call(void 0, appType) && typeof _loaderContext.resolve === "function") {
|
|
353
|
+
_chunk2A4NRLSYjs.patchMpxLoaderResolve.call(void 0, _loaderContext, weappTailwindcssPackageDir2, true);
|
|
345
354
|
}
|
|
346
355
|
const loaderEntries = module.loaders || [];
|
|
347
356
|
let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
|
|
348
357
|
const classSetAnchorIdx = findClassSetAnchor(loaderEntries);
|
|
349
|
-
const isCssModule =
|
|
358
|
+
const isCssModule = _chunk2A4NRLSYjs.isCssLikeModuleResource.call(void 0, module.resource, compilerOptions.cssMatcher, appType);
|
|
350
359
|
if (_process2.default.env.WEAPP_TW_LOADER_DEBUG && isCssModule) {
|
|
351
360
|
debug2("loader hook css module: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), { rewriteAnchorIdx, classSetAnchorIdx });
|
|
352
361
|
}
|
|
@@ -367,7 +376,7 @@ function setupWebpackV4Loaders(options) {
|
|
|
367
376
|
};
|
|
368
377
|
if (runtimeLoaderRewriteOptions && runtimeCssImportRewriteLoaderExists && cssImportRewriteLoaderOptions && runtimeCssImportRewriteLoader) {
|
|
369
378
|
const existingIndex = loaderEntries.findIndex(
|
|
370
|
-
(entry) => _optionalChain([entry, 'access',
|
|
379
|
+
(entry) => _optionalChain([entry, 'access', _4 => _4.loader, 'optionalAccess', _5 => _5.includes, 'optionalCall', _6 => _6(runtimeCssImportRewriteLoader)])
|
|
371
380
|
);
|
|
372
381
|
const rewriteEntry = existingIndex !== -1 ? loaderEntries.splice(existingIndex, 1)[0] : createCssImportRewriteLoaderEntry();
|
|
373
382
|
if (rewriteEntry) {
|
|
@@ -380,7 +389,7 @@ function setupWebpackV4Loaders(options) {
|
|
|
380
389
|
rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
|
|
381
390
|
}
|
|
382
391
|
}
|
|
383
|
-
if (runtimeClassSetLoaderExists && !
|
|
392
|
+
if (runtimeClassSetLoaderExists && !_chunk2A4NRLSYjs.hasLoaderEntry.call(void 0, loaderEntries, runtimeClassSetLoader)) {
|
|
384
393
|
const anchorIndex = findClassSetAnchor(loaderEntries);
|
|
385
394
|
if (anchorIndex === -1) {
|
|
386
395
|
anchorlessInsert(createRuntimeClassSetLoaderEntry(), "before");
|
|
@@ -394,11 +403,11 @@ function setupWebpackV4Loaders(options) {
|
|
|
394
403
|
}
|
|
395
404
|
|
|
396
405
|
// src/bundlers/webpack/BaseUnifiedPlugin/v4.ts
|
|
397
|
-
var debug =
|
|
398
|
-
var weappTailwindcssPackageDir =
|
|
406
|
+
var debug = _chunkYVRX3F6Sjs.createDebug.call(void 0, );
|
|
407
|
+
var weappTailwindcssPackageDir = _chunkGMKSBLNYjs.resolvePackageDir.call(void 0, "weapp-tailwindcss");
|
|
399
408
|
var UnifiedWebpackPluginV4 = class {
|
|
400
409
|
constructor(options = {}) {
|
|
401
|
-
this.options =
|
|
410
|
+
this.options = _chunkYVRX3F6Sjs.getCompilerContext.call(void 0, options);
|
|
402
411
|
this.appType = this.options.appType;
|
|
403
412
|
}
|
|
404
413
|
apply(compiler) {
|
|
@@ -411,22 +420,22 @@ var UnifiedWebpackPluginV4 = class {
|
|
|
411
420
|
twPatcher: initialTwPatcher,
|
|
412
421
|
refreshTailwindcssPatcher
|
|
413
422
|
} = this.options;
|
|
414
|
-
const disabledOptions =
|
|
423
|
+
const disabledOptions = _chunkGMKSBLNYjs.resolveDisabledOptions.call(void 0, disabled);
|
|
415
424
|
const isTailwindcssV4 = (_nullishCoalesce(initialTwPatcher.majorVersion, () => ( 0))) >= 4;
|
|
416
425
|
const shouldRewriteCssImports = isTailwindcssV4 && this.options.rewriteCssImports !== false && !disabledOptions.rewriteCssImports;
|
|
417
|
-
const isMpxApp =
|
|
426
|
+
const isMpxApp = _chunk2A4NRLSYjs.isMpx.call(void 0, this.appType);
|
|
418
427
|
if (shouldRewriteCssImports) {
|
|
419
|
-
|
|
428
|
+
_chunk2A4NRLSYjs.applyTailwindcssCssImportRewrite.call(void 0, compiler, {
|
|
420
429
|
pkgDir: weappTailwindcssPackageDir,
|
|
421
430
|
enabled: true,
|
|
422
431
|
appType: this.appType
|
|
423
432
|
});
|
|
424
|
-
|
|
433
|
+
_chunk2A4NRLSYjs.setupMpxTailwindcssRedirect.call(void 0, weappTailwindcssPackageDir, isMpxApp);
|
|
425
434
|
}
|
|
426
435
|
if (disabledOptions.plugin) {
|
|
427
436
|
return;
|
|
428
437
|
}
|
|
429
|
-
const patchRecorderState =
|
|
438
|
+
const patchRecorderState = _chunkYVRX3F6Sjs.setupPatchRecorder.call(void 0, initialTwPatcher, this.options.tailwindcssBasedir, {
|
|
430
439
|
source: "runtime",
|
|
431
440
|
cwd: _nullishCoalesce(this.options.tailwindcssBasedir, () => ( _process2.default.cwd()))
|
|
432
441
|
});
|
|
@@ -438,17 +447,17 @@ var UnifiedWebpackPluginV4 = class {
|
|
|
438
447
|
};
|
|
439
448
|
let runtimeSetPrepared = false;
|
|
440
449
|
let runtimeSetSignature;
|
|
441
|
-
compiler.hooks.compilation.tap(
|
|
450
|
+
compiler.hooks.compilation.tap(_chunkYVRX3F6Sjs.pluginName, () => {
|
|
442
451
|
runtimeSetPrepared = false;
|
|
443
452
|
});
|
|
444
453
|
async function getClassSetInLoader() {
|
|
445
454
|
if (runtimeSetPrepared) {
|
|
446
455
|
return;
|
|
447
456
|
}
|
|
448
|
-
const signature =
|
|
457
|
+
const signature = _chunkNIS74SI6js.getRuntimeClassSetSignature.call(void 0, runtimeState.twPatcher);
|
|
449
458
|
const forceRefresh = signature !== runtimeSetSignature;
|
|
450
459
|
runtimeSetPrepared = true;
|
|
451
|
-
await
|
|
460
|
+
await _chunkYVRX3F6Sjs.ensureRuntimeClassSet.call(void 0, runtimeState, {
|
|
452
461
|
forceRefresh,
|
|
453
462
|
forceCollect: true,
|
|
454
463
|
clearCache: forceRefresh,
|
package/dist/webpack4.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
isMpx,
|
|
11
11
|
patchMpxLoaderResolve,
|
|
12
12
|
setupMpxTailwindcssRedirect
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SHDJA4GG.mjs";
|
|
14
14
|
import {
|
|
15
15
|
pushConcurrentTaskFactories,
|
|
16
16
|
resolveDisabledOptions,
|
|
@@ -26,18 +26,19 @@ import {
|
|
|
26
26
|
ensureRuntimeClassSet,
|
|
27
27
|
getCompilerContext,
|
|
28
28
|
pluginName,
|
|
29
|
-
setupPatchRecorder
|
|
30
|
-
|
|
29
|
+
setupPatchRecorder,
|
|
30
|
+
shouldSkipJsTransform
|
|
31
|
+
} from "./chunk-LWEVOVRD.mjs";
|
|
31
32
|
import {
|
|
32
33
|
getRuntimeClassSetSignature
|
|
33
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-AYJ4HLWZ.mjs";
|
|
34
35
|
import "./chunk-XAKAD2CR.mjs";
|
|
35
36
|
import {
|
|
36
37
|
getGroupedEntries
|
|
37
38
|
} from "./chunk-OOHJLO5M.mjs";
|
|
38
39
|
import {
|
|
39
40
|
__dirname
|
|
40
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-HL3US2OT.mjs";
|
|
41
42
|
|
|
42
43
|
// src/bundlers/webpack/BaseUnifiedPlugin/v4.ts
|
|
43
44
|
import process3 from "process";
|
|
@@ -52,6 +53,13 @@ function resolveWebpackStaleClassNameFallback(option, _compiler) {
|
|
|
52
53
|
}
|
|
53
54
|
return false;
|
|
54
55
|
}
|
|
56
|
+
function toWebpackV4AssetCompilation(compilation) {
|
|
57
|
+
return compilation;
|
|
58
|
+
}
|
|
59
|
+
function readWebpackV4AssetSource(asset) {
|
|
60
|
+
const source = asset.source();
|
|
61
|
+
return typeof source === "string" ? source : source.toString();
|
|
62
|
+
}
|
|
55
63
|
function setupWebpackV4EmitHook(options) {
|
|
56
64
|
const {
|
|
57
65
|
compiler,
|
|
@@ -70,8 +78,9 @@ function setupWebpackV4EmitHook(options) {
|
|
|
70
78
|
compilerOptions.cache.calcHashValueChanged(chunk.id, chunk.hash);
|
|
71
79
|
}
|
|
72
80
|
}
|
|
81
|
+
const assetCompilation = toWebpackV4AssetCompilation(compilation);
|
|
73
82
|
const assetHashByChunk = createAssetHashByChunkMap(compilation.chunks);
|
|
74
|
-
const assets =
|
|
83
|
+
const assets = assetCompilation.assets;
|
|
75
84
|
const entries = Object.entries(assets);
|
|
76
85
|
const outputDir = compiler.options?.output?.path ? path.resolve(compiler.options.output.path) : process.cwd();
|
|
77
86
|
const jsAssets = /* @__PURE__ */ new Map();
|
|
@@ -90,12 +99,11 @@ function setupWebpackV4EmitHook(options) {
|
|
|
90
99
|
if (!assetName) {
|
|
91
100
|
return void 0;
|
|
92
101
|
}
|
|
93
|
-
const assetSource =
|
|
102
|
+
const assetSource = assetCompilation.assets[assetName];
|
|
94
103
|
if (!assetSource) {
|
|
95
104
|
return void 0;
|
|
96
105
|
}
|
|
97
|
-
|
|
98
|
-
return typeof source === "string" ? source : source.toString();
|
|
106
|
+
return readWebpackV4AssetSource(assetSource);
|
|
99
107
|
},
|
|
100
108
|
filter(id) {
|
|
101
109
|
return jsAssets.has(id);
|
|
@@ -110,17 +118,16 @@ function setupWebpackV4EmitHook(options) {
|
|
|
110
118
|
if (!assetName) {
|
|
111
119
|
continue;
|
|
112
120
|
}
|
|
113
|
-
const assetSource =
|
|
121
|
+
const assetSource = assetCompilation.assets[assetName];
|
|
114
122
|
if (!assetSource) {
|
|
115
123
|
continue;
|
|
116
124
|
}
|
|
117
|
-
const
|
|
118
|
-
const previous = typeof previousSource === "string" ? previousSource : previousSource.toString();
|
|
125
|
+
const previous = readWebpackV4AssetSource(assetSource);
|
|
119
126
|
if (previous === code) {
|
|
120
127
|
continue;
|
|
121
128
|
}
|
|
122
129
|
const source = new ConcatSource(code);
|
|
123
|
-
|
|
130
|
+
assetCompilation.updateAsset(assetName, source);
|
|
124
131
|
compilerOptions.onUpdate(assetName, previous, code);
|
|
125
132
|
debug2("js linked handle: %s", assetName);
|
|
126
133
|
}
|
|
@@ -161,7 +168,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
161
168
|
if (Array.isArray(groupedEntries.html)) {
|
|
162
169
|
for (const element of groupedEntries.html) {
|
|
163
170
|
const [file, originalSource] = element;
|
|
164
|
-
const rawSource = originalSource
|
|
171
|
+
const rawSource = readWebpackV4AssetSource(originalSource);
|
|
165
172
|
const cacheKey = file;
|
|
166
173
|
const chunkHash = assetHashByChunk.get(file);
|
|
167
174
|
tasks.push(
|
|
@@ -172,7 +179,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
172
179
|
rawSource,
|
|
173
180
|
hash: chunkHash,
|
|
174
181
|
applyResult(source) {
|
|
175
|
-
|
|
182
|
+
assetCompilation.updateAsset(file, source);
|
|
176
183
|
},
|
|
177
184
|
onCacheHit() {
|
|
178
185
|
debug2("html cache hit: %s", file);
|
|
@@ -194,12 +201,11 @@ function setupWebpackV4EmitHook(options) {
|
|
|
194
201
|
if (Array.isArray(groupedEntries.js)) {
|
|
195
202
|
for (const [file] of groupedEntries.js) {
|
|
196
203
|
const cacheKey = getCacheKey(file);
|
|
197
|
-
const assetSource =
|
|
204
|
+
const assetSource = assetCompilation.assets[file];
|
|
198
205
|
if (!assetSource) {
|
|
199
206
|
continue;
|
|
200
207
|
}
|
|
201
|
-
const
|
|
202
|
-
const initialRawSource = typeof initialValue === "string" ? initialValue : initialValue.toString();
|
|
208
|
+
const initialRawSource = readWebpackV4AssetSource(assetSource);
|
|
203
209
|
const absoluteFile = toAbsoluteOutputPath(file, outputDir);
|
|
204
210
|
const chunkHash = assetHashByChunk.get(file);
|
|
205
211
|
const sourceAwareHash = chunkHash ? `${chunkHash}:${compilerOptions.cache.computeHash(initialRawSource)}` : void 0;
|
|
@@ -211,16 +217,15 @@ function setupWebpackV4EmitHook(options) {
|
|
|
211
217
|
rawSource: initialRawSource,
|
|
212
218
|
hash: sourceAwareHash,
|
|
213
219
|
applyResult(source) {
|
|
214
|
-
|
|
220
|
+
assetCompilation.updateAsset(file, source);
|
|
215
221
|
},
|
|
216
222
|
onCacheHit() {
|
|
217
223
|
debug2("js cache hit: %s", file);
|
|
218
224
|
},
|
|
219
225
|
transform: async () => {
|
|
220
|
-
const currentAsset =
|
|
221
|
-
const
|
|
222
|
-
const
|
|
223
|
-
const { code, linked } = await compilerOptions.jsHandler(currentSource, runtimeSet, {
|
|
226
|
+
const currentAsset = assetCompilation.assets[file];
|
|
227
|
+
const currentSource = currentAsset ? readWebpackV4AssetSource(currentAsset) : "";
|
|
228
|
+
const handlerOptions = {
|
|
224
229
|
staleClassNameFallback,
|
|
225
230
|
tailwindcssMajorVersion: runtimeState.twPatcher.majorVersion,
|
|
226
231
|
filename: absoluteFile,
|
|
@@ -228,7 +233,11 @@ function setupWebpackV4EmitHook(options) {
|
|
|
228
233
|
babelParserOptions: {
|
|
229
234
|
sourceFilename: absoluteFile
|
|
230
235
|
}
|
|
231
|
-
}
|
|
236
|
+
};
|
|
237
|
+
if (shouldSkipJsTransform(currentSource, handlerOptions)) {
|
|
238
|
+
return { result: new ConcatSource(currentSource) };
|
|
239
|
+
}
|
|
240
|
+
const { code, linked } = await compilerOptions.jsHandler(currentSource, runtimeSet, handlerOptions);
|
|
232
241
|
const source = new ConcatSource(code);
|
|
233
242
|
compilerOptions.onUpdate(file, currentSource, code);
|
|
234
243
|
debug2("js handle: %s", file);
|
|
@@ -244,7 +253,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
244
253
|
if (Array.isArray(groupedEntries.css)) {
|
|
245
254
|
for (const element of groupedEntries.css) {
|
|
246
255
|
const [file, originalSource] = element;
|
|
247
|
-
const rawSource = originalSource
|
|
256
|
+
const rawSource = readWebpackV4AssetSource(originalSource);
|
|
248
257
|
const cacheKey = file;
|
|
249
258
|
const chunkHash = assetHashByChunk.get(file);
|
|
250
259
|
tasks.push(
|
|
@@ -255,7 +264,7 @@ function setupWebpackV4EmitHook(options) {
|
|
|
255
264
|
rawSource,
|
|
256
265
|
hash: chunkHash,
|
|
257
266
|
applyResult(source) {
|
|
258
|
-
|
|
267
|
+
assetCompilation.updateAsset(file, source);
|
|
259
268
|
},
|
|
260
269
|
onCacheHit() {
|
|
261
270
|
debug2("css cache hit: %s", file);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weapp-tailwindcss",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.12.0-alpha.2",
|
|
4
4
|
"description": "把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!",
|
|
5
5
|
"author": "ice breaker <1324318532@qq.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -150,13 +150,14 @@
|
|
|
150
150
|
"dist",
|
|
151
151
|
"index.css",
|
|
152
152
|
"preflight.css",
|
|
153
|
+
"scripts/postinstall.mjs",
|
|
153
154
|
"theme.css",
|
|
154
155
|
"uni-app-x.css",
|
|
155
156
|
"utilities.css",
|
|
156
157
|
"with-layer.css"
|
|
157
158
|
],
|
|
158
159
|
"engines": {
|
|
159
|
-
"node": "^
|
|
160
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
160
161
|
},
|
|
161
162
|
"publishConfig": {
|
|
162
163
|
"access": "public",
|
|
@@ -168,8 +169,8 @@
|
|
|
168
169
|
"@babel/traverse": "~7.29.0",
|
|
169
170
|
"@babel/types": "~7.29.0",
|
|
170
171
|
"@tailwindcss-mangle/config": "^7.0.0",
|
|
171
|
-
"@vue/compiler-dom": "^3.5.
|
|
172
|
-
"@vue/compiler-sfc": "^3.5.
|
|
172
|
+
"@vue/compiler-dom": "^3.5.33",
|
|
173
|
+
"@vue/compiler-sfc": "^3.5.33",
|
|
173
174
|
"@weapp-core/escape": "~7.0.0",
|
|
174
175
|
"@weapp-core/regex": "~1.0.1",
|
|
175
176
|
"cac": "6.7.14",
|
|
@@ -185,10 +186,14 @@
|
|
|
185
186
|
"tailwindcss-patch": "9.0.0",
|
|
186
187
|
"webpack-sources": "3.3.4",
|
|
187
188
|
"yaml": "^2.8.3",
|
|
189
|
+
"@weapp-tailwindcss/postcss": "2.2.0-alpha.1",
|
|
188
190
|
"@weapp-tailwindcss/logger": "1.1.0",
|
|
189
|
-
"@weapp-tailwindcss/
|
|
191
|
+
"@weapp-tailwindcss/reset": "0.1.0-next.0",
|
|
190
192
|
"@weapp-tailwindcss/shared": "1.1.3"
|
|
191
193
|
},
|
|
194
|
+
"devDependencies": {
|
|
195
|
+
"fast-check": "^4.7.0"
|
|
196
|
+
},
|
|
192
197
|
"scripts": {
|
|
193
198
|
"dev": "tsup --watch --sourcemap",
|
|
194
199
|
"build": "tsup && node scripts/ensure-escape-dts.mjs",
|
|
@@ -196,7 +201,7 @@
|
|
|
196
201
|
"build:cli": "cd plugins/cli && pnpm run build",
|
|
197
202
|
"build:css": "tsx scripts/build-css.ts",
|
|
198
203
|
"build:weapp-theme": "tsx scripts/build-weapp-theme.ts",
|
|
199
|
-
"test": "
|
|
204
|
+
"test": "pnpm run cli:patch && vitest run",
|
|
200
205
|
"test:dev": "vitest",
|
|
201
206
|
"test:ui": "vitest --ui",
|
|
202
207
|
"bench": "vitest bench --config ./vitest.config.ts",
|
|
@@ -213,7 +218,7 @@
|
|
|
213
218
|
"release": "tsx scripts/release.ts",
|
|
214
219
|
"lint": "eslint .",
|
|
215
220
|
"lint:fix": "eslint ./src --fix",
|
|
216
|
-
"postinstall": "node
|
|
221
|
+
"postinstall": "node scripts/postinstall.mjs",
|
|
217
222
|
"bench:vite-dev-hmr": "tsx scripts/vite-dev-hmr-bench.ts",
|
|
218
223
|
"test:watch-hmr": "node --import tsx scripts/watch-hmr-regression/index.ts"
|
|
219
224
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process'
|
|
2
|
+
import process from 'node:process'
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
4
|
+
|
|
5
|
+
const cliPath = fileURLToPath(new URL('../bin/weapp-tailwindcss.js', import.meta.url))
|
|
6
|
+
const missingRuntimeModuleMessage = `${[
|
|
7
|
+
'[weapp-tailwindcss] postinstall patch skipped because a runtime module is missing.',
|
|
8
|
+
'Run `pnpm --filter weapp-tailwindcss build` before strict CLI validation.',
|
|
9
|
+
].join(' ')}\n`
|
|
10
|
+
|
|
11
|
+
export function isMissingRuntimeModuleOutput(output) {
|
|
12
|
+
return /MODULE_NOT_FOUND|Cannot find module/.test(output)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function resolvePostinstallPatchExitCode(result) {
|
|
16
|
+
if (result.error) {
|
|
17
|
+
return {
|
|
18
|
+
code: 0,
|
|
19
|
+
message: `[weapp-tailwindcss] postinstall patch skipped: ${result.error.message}\n`,
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (result.status && isMissingRuntimeModuleOutput(`${result.stderr ?? ''}\n${result.stdout ?? ''}`)) {
|
|
24
|
+
return {
|
|
25
|
+
code: 0,
|
|
26
|
+
message: missingRuntimeModuleMessage,
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
code: result.status ?? 0,
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function runPostinstallPatch() {
|
|
36
|
+
const result = spawnSync(process.execPath, [cliPath, 'patch'], {
|
|
37
|
+
encoding: 'utf8',
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
if (result.stdout) {
|
|
41
|
+
process.stdout.write(result.stdout)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (result.stderr) {
|
|
45
|
+
process.stderr.write(result.stderr)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const resolved = resolvePostinstallPatchExitCode(result)
|
|
49
|
+
if (resolved.message) {
|
|
50
|
+
process.stderr.write(resolved.message)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
process.exitCode = resolved.code
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const entryPoint = process.argv[1] ? pathToFileURL(process.argv[1]).href : undefined
|
|
57
|
+
if (import.meta.url === entryPoint) {
|
|
58
|
+
runPostinstallPatch()
|
|
59
|
+
}
|