@unocss/webpack 0.47.6 → 0.48.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +93 -39
- package/dist/index.mjs +91 -39
- package/package.json +7 -5
package/dist/index.cjs
CHANGED
|
@@ -7,13 +7,18 @@ const WebpackSources = require('webpack-sources');
|
|
|
7
7
|
const pluginutils = require('@rollup/pluginutils');
|
|
8
8
|
const config = require('@unocss/config');
|
|
9
9
|
const core = require('@unocss/core');
|
|
10
|
-
const
|
|
10
|
+
const fs = require('fs/promises');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
const fg = require('fast-glob');
|
|
11
13
|
const MagicString = require('magic-string');
|
|
12
14
|
const remapping = require('@ampproject/remapping');
|
|
15
|
+
const crypto = require('crypto');
|
|
13
16
|
|
|
14
17
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
15
18
|
|
|
16
19
|
const WebpackSources__default = /*#__PURE__*/_interopDefaultLegacy(WebpackSources);
|
|
20
|
+
const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
21
|
+
const fg__default = /*#__PURE__*/_interopDefaultLegacy(fg);
|
|
17
22
|
const MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString);
|
|
18
23
|
const remapping__default = /*#__PURE__*/_interopDefaultLegacy(remapping);
|
|
19
24
|
|
|
@@ -35,6 +40,7 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
35
40
|
const reloadListeners = [];
|
|
36
41
|
const modules = new core.BetterMap();
|
|
37
42
|
const tokens = /* @__PURE__ */ new Set();
|
|
43
|
+
const tasks = [];
|
|
38
44
|
const affectedModules = /* @__PURE__ */ new Set();
|
|
39
45
|
let ready = reloadConfig();
|
|
40
46
|
async function reloadConfig() {
|
|
@@ -84,15 +90,20 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
84
90
|
if (tokens.size > len)
|
|
85
91
|
invalidate();
|
|
86
92
|
}
|
|
87
|
-
|
|
93
|
+
function filter(code, id) {
|
|
88
94
|
if (code.includes(IGNORE_COMMENT))
|
|
89
95
|
return false;
|
|
90
96
|
return code.includes(INCLUDE_COMMENT) || code.includes(CSS_PLACEHOLDER) || rollupFilter(id.replace(/\?v=\w+$/, ""));
|
|
91
|
-
}
|
|
97
|
+
}
|
|
92
98
|
async function getConfig() {
|
|
93
99
|
await ready;
|
|
94
100
|
return rawConfig;
|
|
95
101
|
}
|
|
102
|
+
async function flushTasks() {
|
|
103
|
+
const _tasks = [...tasks];
|
|
104
|
+
await Promise.all(_tasks);
|
|
105
|
+
tasks.splice(0, _tasks.length);
|
|
106
|
+
}
|
|
96
107
|
return {
|
|
97
108
|
get ready() {
|
|
98
109
|
return ready;
|
|
@@ -100,6 +111,8 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
100
111
|
tokens,
|
|
101
112
|
modules,
|
|
102
113
|
affectedModules,
|
|
114
|
+
tasks,
|
|
115
|
+
flushTasks,
|
|
103
116
|
invalidate,
|
|
104
117
|
onInvalidate(fn) {
|
|
105
118
|
invalidations.push(fn);
|
|
@@ -118,6 +131,79 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
118
131
|
};
|
|
119
132
|
}
|
|
120
133
|
|
|
134
|
+
async function applyTransformers(ctx, original, id, enforce = "default") {
|
|
135
|
+
if (original.includes(IGNORE_COMMENT))
|
|
136
|
+
return;
|
|
137
|
+
const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
|
|
138
|
+
if (!transformers.length)
|
|
139
|
+
return;
|
|
140
|
+
let code = original;
|
|
141
|
+
let s = new MagicString__default(code);
|
|
142
|
+
const maps = [];
|
|
143
|
+
for (const t of transformers) {
|
|
144
|
+
if (t.idFilter) {
|
|
145
|
+
if (!t.idFilter(id))
|
|
146
|
+
continue;
|
|
147
|
+
} else if (!ctx.filter(code, id)) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
await t.transform(s, id, ctx);
|
|
151
|
+
if (s.hasChanged()) {
|
|
152
|
+
code = s.toString();
|
|
153
|
+
maps.push(s.generateMap({ hires: true, source: id }));
|
|
154
|
+
s = new MagicString__default(code);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (code !== original) {
|
|
158
|
+
ctx.affectedModules.add(id);
|
|
159
|
+
return {
|
|
160
|
+
code,
|
|
161
|
+
map: remapping__default(maps, () => null)
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
async function setupExtraContent(ctx, shouldWatch = false) {
|
|
167
|
+
const { extraContent } = await ctx.getConfig();
|
|
168
|
+
const { extract, tasks, root, filter } = ctx;
|
|
169
|
+
if (extraContent?.plain) {
|
|
170
|
+
await Promise.all(
|
|
171
|
+
extraContent.plain.map((code, idx) => {
|
|
172
|
+
return extract(code, `__extra_content_${idx}__`);
|
|
173
|
+
})
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
if (extraContent?.filesystem) {
|
|
177
|
+
const files = await fg__default(extraContent.filesystem, { cwd: root });
|
|
178
|
+
async function extractFile(file) {
|
|
179
|
+
const code = await fs__default.readFile(file, "utf-8");
|
|
180
|
+
if (!filter(code, file))
|
|
181
|
+
return;
|
|
182
|
+
const preTransform = await applyTransformers(ctx, code, file, "pre");
|
|
183
|
+
const defaultTransform = await applyTransformers(ctx, preTransform?.code || code, file);
|
|
184
|
+
await applyTransformers(ctx, defaultTransform?.code || preTransform?.code || code, file, "post");
|
|
185
|
+
return await extract(preTransform?.code || code, file);
|
|
186
|
+
}
|
|
187
|
+
if (shouldWatch) {
|
|
188
|
+
const { watch } = await import('chokidar');
|
|
189
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
190
|
+
const watcher = watch(files, {
|
|
191
|
+
ignorePermissionErrors: true,
|
|
192
|
+
ignored,
|
|
193
|
+
cwd: root,
|
|
194
|
+
ignoreInitial: true
|
|
195
|
+
});
|
|
196
|
+
watcher.on("all", (type, file) => {
|
|
197
|
+
if (type === "add" || type === "change") {
|
|
198
|
+
const absolutePath = path.resolve(root, file);
|
|
199
|
+
tasks.push(extractFile(absolutePath));
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
await Promise.all(files.map(extractFile));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
121
207
|
function getHash(input, length = 8) {
|
|
122
208
|
return crypto.createHash("sha256").update(input).digest("hex").slice(0, length);
|
|
123
209
|
}
|
|
@@ -152,38 +238,6 @@ function getHashPlaceholder(hash) {
|
|
|
152
238
|
return `#--unocss-hash--{content:"${hash}"}`;
|
|
153
239
|
}
|
|
154
240
|
|
|
155
|
-
async function applyTransformers(ctx, original, id, enforce = "default") {
|
|
156
|
-
if (original.includes(IGNORE_COMMENT))
|
|
157
|
-
return;
|
|
158
|
-
const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
|
|
159
|
-
if (!transformers.length)
|
|
160
|
-
return;
|
|
161
|
-
let code = original;
|
|
162
|
-
let s = new MagicString__default(code);
|
|
163
|
-
const maps = [];
|
|
164
|
-
for (const t of transformers) {
|
|
165
|
-
if (t.idFilter) {
|
|
166
|
-
if (!t.idFilter(id))
|
|
167
|
-
continue;
|
|
168
|
-
} else if (!ctx.filter(code, id)) {
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
await t.transform(s, id, ctx);
|
|
172
|
-
if (s.hasChanged()) {
|
|
173
|
-
code = s.toString();
|
|
174
|
-
maps.push(s.generateMap({ hires: true, source: id }));
|
|
175
|
-
s = new MagicString__default(code);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (code !== original) {
|
|
179
|
-
ctx.affectedModules.add(id);
|
|
180
|
-
return {
|
|
181
|
-
code,
|
|
182
|
-
map: remapping__default(maps, () => null)
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
241
|
function getPath(id) {
|
|
188
242
|
return id.replace(/\?.*$/, "");
|
|
189
243
|
}
|
|
@@ -199,7 +253,7 @@ function defineConfig(config) {
|
|
|
199
253
|
function WebpackPlugin(configOrPath, defaults) {
|
|
200
254
|
return unplugin.createUnplugin(() => {
|
|
201
255
|
const ctx = createContext(configOrPath, defaults);
|
|
202
|
-
const { uno, tokens, filter, extract, onInvalidate } = ctx;
|
|
256
|
+
const { uno, tokens, filter, extract, onInvalidate, tasks, flushTasks } = ctx;
|
|
203
257
|
let timer;
|
|
204
258
|
onInvalidate(() => {
|
|
205
259
|
clearTimeout(timer);
|
|
@@ -211,7 +265,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
211
265
|
'[unocss] webpack integration only supports "pre" enforce transformers currently.the following transformers will be ignored\n' + nonPreTransformers.map((i) => ` - ${i.name}`).join("\n")
|
|
212
266
|
);
|
|
213
267
|
}
|
|
214
|
-
|
|
268
|
+
tasks.push(setupExtraContent(ctx));
|
|
215
269
|
const entries = /* @__PURE__ */ new Set();
|
|
216
270
|
const hashes = /* @__PURE__ */ new Map();
|
|
217
271
|
const plugin = {
|
|
@@ -257,7 +311,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
257
311
|
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
|
|
258
312
|
compilation.hooks.optimizeAssets.tapPromise(PLUGIN_NAME, async () => {
|
|
259
313
|
const files = Object.keys(compilation.assets);
|
|
260
|
-
await
|
|
314
|
+
await flushTasks();
|
|
261
315
|
const result = await uno.generate(tokens, { minify: true });
|
|
262
316
|
for (const file of files) {
|
|
263
317
|
if (file === "*")
|
|
@@ -286,7 +340,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
286
340
|
async function updateModules() {
|
|
287
341
|
if (!plugin.__vfsModules)
|
|
288
342
|
return;
|
|
289
|
-
await
|
|
343
|
+
await flushTasks();
|
|
290
344
|
const result = await uno.generate(tokens);
|
|
291
345
|
if (lastTokenSize === tokens.size)
|
|
292
346
|
return;
|
package/dist/index.mjs
CHANGED
|
@@ -3,9 +3,12 @@ import WebpackSources from 'webpack-sources';
|
|
|
3
3
|
import { createFilter } from '@rollup/pluginutils';
|
|
4
4
|
import { loadConfig } from '@unocss/config';
|
|
5
5
|
import { cssIdRE, createGenerator, BetterMap } from '@unocss/core';
|
|
6
|
-
import
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
import { resolve } from 'path';
|
|
8
|
+
import fg from 'fast-glob';
|
|
7
9
|
import MagicString from 'magic-string';
|
|
8
10
|
import remapping from '@ampproject/remapping';
|
|
11
|
+
import { createHash } from 'crypto';
|
|
9
12
|
|
|
10
13
|
const INCLUDE_COMMENT = "@unocss-include";
|
|
11
14
|
const IGNORE_COMMENT = "@unocss-ignore";
|
|
@@ -25,6 +28,7 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
25
28
|
const reloadListeners = [];
|
|
26
29
|
const modules = new BetterMap();
|
|
27
30
|
const tokens = /* @__PURE__ */ new Set();
|
|
31
|
+
const tasks = [];
|
|
28
32
|
const affectedModules = /* @__PURE__ */ new Set();
|
|
29
33
|
let ready = reloadConfig();
|
|
30
34
|
async function reloadConfig() {
|
|
@@ -74,15 +78,20 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
74
78
|
if (tokens.size > len)
|
|
75
79
|
invalidate();
|
|
76
80
|
}
|
|
77
|
-
|
|
81
|
+
function filter(code, id) {
|
|
78
82
|
if (code.includes(IGNORE_COMMENT))
|
|
79
83
|
return false;
|
|
80
84
|
return code.includes(INCLUDE_COMMENT) || code.includes(CSS_PLACEHOLDER) || rollupFilter(id.replace(/\?v=\w+$/, ""));
|
|
81
|
-
}
|
|
85
|
+
}
|
|
82
86
|
async function getConfig() {
|
|
83
87
|
await ready;
|
|
84
88
|
return rawConfig;
|
|
85
89
|
}
|
|
90
|
+
async function flushTasks() {
|
|
91
|
+
const _tasks = [...tasks];
|
|
92
|
+
await Promise.all(_tasks);
|
|
93
|
+
tasks.splice(0, _tasks.length);
|
|
94
|
+
}
|
|
86
95
|
return {
|
|
87
96
|
get ready() {
|
|
88
97
|
return ready;
|
|
@@ -90,6 +99,8 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
90
99
|
tokens,
|
|
91
100
|
modules,
|
|
92
101
|
affectedModules,
|
|
102
|
+
tasks,
|
|
103
|
+
flushTasks,
|
|
93
104
|
invalidate,
|
|
94
105
|
onInvalidate(fn) {
|
|
95
106
|
invalidations.push(fn);
|
|
@@ -108,6 +119,79 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
|
|
|
108
119
|
};
|
|
109
120
|
}
|
|
110
121
|
|
|
122
|
+
async function applyTransformers(ctx, original, id, enforce = "default") {
|
|
123
|
+
if (original.includes(IGNORE_COMMENT))
|
|
124
|
+
return;
|
|
125
|
+
const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
|
|
126
|
+
if (!transformers.length)
|
|
127
|
+
return;
|
|
128
|
+
let code = original;
|
|
129
|
+
let s = new MagicString(code);
|
|
130
|
+
const maps = [];
|
|
131
|
+
for (const t of transformers) {
|
|
132
|
+
if (t.idFilter) {
|
|
133
|
+
if (!t.idFilter(id))
|
|
134
|
+
continue;
|
|
135
|
+
} else if (!ctx.filter(code, id)) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
await t.transform(s, id, ctx);
|
|
139
|
+
if (s.hasChanged()) {
|
|
140
|
+
code = s.toString();
|
|
141
|
+
maps.push(s.generateMap({ hires: true, source: id }));
|
|
142
|
+
s = new MagicString(code);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (code !== original) {
|
|
146
|
+
ctx.affectedModules.add(id);
|
|
147
|
+
return {
|
|
148
|
+
code,
|
|
149
|
+
map: remapping(maps, () => null)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async function setupExtraContent(ctx, shouldWatch = false) {
|
|
155
|
+
const { extraContent } = await ctx.getConfig();
|
|
156
|
+
const { extract, tasks, root, filter } = ctx;
|
|
157
|
+
if (extraContent?.plain) {
|
|
158
|
+
await Promise.all(
|
|
159
|
+
extraContent.plain.map((code, idx) => {
|
|
160
|
+
return extract(code, `__extra_content_${idx}__`);
|
|
161
|
+
})
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
if (extraContent?.filesystem) {
|
|
165
|
+
const files = await fg(extraContent.filesystem, { cwd: root });
|
|
166
|
+
async function extractFile(file) {
|
|
167
|
+
const code = await fs.readFile(file, "utf-8");
|
|
168
|
+
if (!filter(code, file))
|
|
169
|
+
return;
|
|
170
|
+
const preTransform = await applyTransformers(ctx, code, file, "pre");
|
|
171
|
+
const defaultTransform = await applyTransformers(ctx, preTransform?.code || code, file);
|
|
172
|
+
await applyTransformers(ctx, defaultTransform?.code || preTransform?.code || code, file, "post");
|
|
173
|
+
return await extract(preTransform?.code || code, file);
|
|
174
|
+
}
|
|
175
|
+
if (shouldWatch) {
|
|
176
|
+
const { watch } = await import('chokidar');
|
|
177
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
178
|
+
const watcher = watch(files, {
|
|
179
|
+
ignorePermissionErrors: true,
|
|
180
|
+
ignored,
|
|
181
|
+
cwd: root,
|
|
182
|
+
ignoreInitial: true
|
|
183
|
+
});
|
|
184
|
+
watcher.on("all", (type, file) => {
|
|
185
|
+
if (type === "add" || type === "change") {
|
|
186
|
+
const absolutePath = resolve(root, file);
|
|
187
|
+
tasks.push(extractFile(absolutePath));
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
await Promise.all(files.map(extractFile));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
111
195
|
function getHash(input, length = 8) {
|
|
112
196
|
return createHash("sha256").update(input).digest("hex").slice(0, length);
|
|
113
197
|
}
|
|
@@ -142,38 +226,6 @@ function getHashPlaceholder(hash) {
|
|
|
142
226
|
return `#--unocss-hash--{content:"${hash}"}`;
|
|
143
227
|
}
|
|
144
228
|
|
|
145
|
-
async function applyTransformers(ctx, original, id, enforce = "default") {
|
|
146
|
-
if (original.includes(IGNORE_COMMENT))
|
|
147
|
-
return;
|
|
148
|
-
const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
|
|
149
|
-
if (!transformers.length)
|
|
150
|
-
return;
|
|
151
|
-
let code = original;
|
|
152
|
-
let s = new MagicString(code);
|
|
153
|
-
const maps = [];
|
|
154
|
-
for (const t of transformers) {
|
|
155
|
-
if (t.idFilter) {
|
|
156
|
-
if (!t.idFilter(id))
|
|
157
|
-
continue;
|
|
158
|
-
} else if (!ctx.filter(code, id)) {
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
await t.transform(s, id, ctx);
|
|
162
|
-
if (s.hasChanged()) {
|
|
163
|
-
code = s.toString();
|
|
164
|
-
maps.push(s.generateMap({ hires: true, source: id }));
|
|
165
|
-
s = new MagicString(code);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
if (code !== original) {
|
|
169
|
-
ctx.affectedModules.add(id);
|
|
170
|
-
return {
|
|
171
|
-
code,
|
|
172
|
-
map: remapping(maps, () => null)
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
229
|
function getPath(id) {
|
|
178
230
|
return id.replace(/\?.*$/, "");
|
|
179
231
|
}
|
|
@@ -189,7 +241,7 @@ function defineConfig(config) {
|
|
|
189
241
|
function WebpackPlugin(configOrPath, defaults) {
|
|
190
242
|
return createUnplugin(() => {
|
|
191
243
|
const ctx = createContext(configOrPath, defaults);
|
|
192
|
-
const { uno, tokens, filter, extract, onInvalidate } = ctx;
|
|
244
|
+
const { uno, tokens, filter, extract, onInvalidate, tasks, flushTasks } = ctx;
|
|
193
245
|
let timer;
|
|
194
246
|
onInvalidate(() => {
|
|
195
247
|
clearTimeout(timer);
|
|
@@ -201,7 +253,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
201
253
|
'[unocss] webpack integration only supports "pre" enforce transformers currently.the following transformers will be ignored\n' + nonPreTransformers.map((i) => ` - ${i.name}`).join("\n")
|
|
202
254
|
);
|
|
203
255
|
}
|
|
204
|
-
|
|
256
|
+
tasks.push(setupExtraContent(ctx));
|
|
205
257
|
const entries = /* @__PURE__ */ new Set();
|
|
206
258
|
const hashes = /* @__PURE__ */ new Map();
|
|
207
259
|
const plugin = {
|
|
@@ -247,7 +299,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
247
299
|
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
|
|
248
300
|
compilation.hooks.optimizeAssets.tapPromise(PLUGIN_NAME, async () => {
|
|
249
301
|
const files = Object.keys(compilation.assets);
|
|
250
|
-
await
|
|
302
|
+
await flushTasks();
|
|
251
303
|
const result = await uno.generate(tokens, { minify: true });
|
|
252
304
|
for (const file of files) {
|
|
253
305
|
if (file === "*")
|
|
@@ -276,7 +328,7 @@ function WebpackPlugin(configOrPath, defaults) {
|
|
|
276
328
|
async function updateModules() {
|
|
277
329
|
if (!plugin.__vfsModules)
|
|
278
330
|
return;
|
|
279
|
-
await
|
|
331
|
+
await flushTasks();
|
|
280
332
|
const result = await uno.generate(tokens);
|
|
281
333
|
if (lastTokenSize === tokens.size)
|
|
282
334
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unocss/webpack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.1",
|
|
4
4
|
"description": "The Webpack plugin for UnoCSS",
|
|
5
5
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,10 +38,12 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@ampproject/remapping": "^2.2.0",
|
|
40
40
|
"@rollup/pluginutils": "^5.0.2",
|
|
41
|
-
"@unocss/config": "0.
|
|
42
|
-
"@unocss/core": "0.
|
|
43
|
-
"
|
|
44
|
-
"
|
|
41
|
+
"@unocss/config": "0.48.1",
|
|
42
|
+
"@unocss/core": "0.48.1",
|
|
43
|
+
"chokidar": "^3.5.3",
|
|
44
|
+
"fast-glob": "^3.2.12",
|
|
45
|
+
"magic-string": "^0.27.0",
|
|
46
|
+
"unplugin": "^1.0.1",
|
|
45
47
|
"webpack-sources": "^3.2.3"
|
|
46
48
|
},
|
|
47
49
|
"devDependencies": {
|