@unocss/cli 0.45.20 → 0.45.22
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/cli.mjs +4 -1
- package/dist/index.mjs +4 -1
- package/dist/shared/cli.387664ed.mjs +278 -0
- package/package.json +9 -6
- package/dist/shared/cli.5cbccb9d.mjs +0 -126
package/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cac } from 'cac';
|
|
2
|
-
import { b as build, v as version, h as handleError } from './shared/cli.
|
|
2
|
+
import { b as build, v as version, h as handleError } from './shared/cli.387664ed.mjs';
|
|
3
3
|
import 'fs';
|
|
4
4
|
import 'pathe';
|
|
5
5
|
import 'fast-glob';
|
|
@@ -8,6 +8,9 @@ import 'colorette';
|
|
|
8
8
|
import 'perfect-debounce';
|
|
9
9
|
import '@unocss/core';
|
|
10
10
|
import '@unocss/config';
|
|
11
|
+
import '@rollup/pluginutils';
|
|
12
|
+
import 'magic-string';
|
|
13
|
+
import '@ampproject/remapping';
|
|
11
14
|
import '@unocss/preset-uno';
|
|
12
15
|
|
|
13
16
|
async function startCli(cwd = process.cwd(), argv = process.argv, options = {}) {
|
package/dist/index.mjs
CHANGED
|
@@ -6,5 +6,8 @@ import 'colorette';
|
|
|
6
6
|
import 'perfect-debounce';
|
|
7
7
|
import '@unocss/core';
|
|
8
8
|
import '@unocss/config';
|
|
9
|
-
export { b as build, r as resolveOptions } from './shared/cli.
|
|
9
|
+
export { b as build, r as resolveOptions } from './shared/cli.387664ed.mjs';
|
|
10
|
+
import '@rollup/pluginutils';
|
|
11
|
+
import 'magic-string';
|
|
12
|
+
import '@ampproject/remapping';
|
|
10
13
|
import '@unocss/preset-uno';
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { promises, existsSync } from 'fs';
|
|
2
|
+
import { resolve, dirname, relative, basename } from 'pathe';
|
|
3
|
+
import fg from 'fast-glob';
|
|
4
|
+
import consola from 'consola';
|
|
5
|
+
import { cyan, green, dim } from 'colorette';
|
|
6
|
+
import { debounce } from 'perfect-debounce';
|
|
7
|
+
import { cssIdRE, createGenerator, BetterMap, toArray } from '@unocss/core';
|
|
8
|
+
import { loadConfig } from '@unocss/config';
|
|
9
|
+
import { createFilter } from '@rollup/pluginutils';
|
|
10
|
+
import MagicString from 'magic-string';
|
|
11
|
+
import remapping from '@ampproject/remapping';
|
|
12
|
+
import presetUno from '@unocss/preset-uno';
|
|
13
|
+
|
|
14
|
+
const version = "0.45.22";
|
|
15
|
+
|
|
16
|
+
const INCLUDE_COMMENT = "@unocss-include";
|
|
17
|
+
const IGNORE_COMMENT = "@unocss-ignore";
|
|
18
|
+
const CSS_PLACEHOLDER = "@unocss-placeholder";
|
|
19
|
+
|
|
20
|
+
const defaultExclude = [cssIdRE];
|
|
21
|
+
const defaultInclude = [/\.vue$/, /\.vue\?vue/, /\.svelte$/, /\.[jt]sx$/, /\.mdx?$/, /\.astro$/, /\.elm$/, /\.html$/];
|
|
22
|
+
|
|
23
|
+
function createContext(configOrPath, defaults = {}, extraConfigSources = [], resolveConfigResult = () => {
|
|
24
|
+
}) {
|
|
25
|
+
let root = process.cwd();
|
|
26
|
+
let rawConfig = {};
|
|
27
|
+
let configFileList = [];
|
|
28
|
+
const uno = createGenerator(rawConfig, defaults);
|
|
29
|
+
let rollupFilter = createFilter(defaultInclude, defaultExclude);
|
|
30
|
+
const invalidations = [];
|
|
31
|
+
const reloadListeners = [];
|
|
32
|
+
const modules = new BetterMap();
|
|
33
|
+
const tokens = /* @__PURE__ */ new Set();
|
|
34
|
+
const affectedModules = /* @__PURE__ */ new Set();
|
|
35
|
+
let ready = reloadConfig();
|
|
36
|
+
async function reloadConfig() {
|
|
37
|
+
const result = await loadConfig(root, configOrPath, extraConfigSources);
|
|
38
|
+
resolveConfigResult(result);
|
|
39
|
+
rawConfig = result.config;
|
|
40
|
+
configFileList = result.sources;
|
|
41
|
+
uno.setConfig(rawConfig);
|
|
42
|
+
uno.config.envMode = "dev";
|
|
43
|
+
rollupFilter = createFilter(
|
|
44
|
+
rawConfig.include || defaultInclude,
|
|
45
|
+
rawConfig.exclude || defaultExclude
|
|
46
|
+
);
|
|
47
|
+
tokens.clear();
|
|
48
|
+
await Promise.all(modules.map((code, id) => uno.applyExtractors(code, id, tokens)));
|
|
49
|
+
invalidate();
|
|
50
|
+
dispatchReload();
|
|
51
|
+
const presets = /* @__PURE__ */ new Set();
|
|
52
|
+
uno.config.presets.forEach((i) => {
|
|
53
|
+
if (!i.name)
|
|
54
|
+
return;
|
|
55
|
+
if (presets.has(i.name))
|
|
56
|
+
console.warn(`[unocss] duplication of preset ${i.name} found, there might be something wrong with your config.`);
|
|
57
|
+
else
|
|
58
|
+
presets.add(i.name);
|
|
59
|
+
});
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
async function updateRoot(newRoot) {
|
|
63
|
+
if (newRoot !== root) {
|
|
64
|
+
root = newRoot;
|
|
65
|
+
ready = reloadConfig();
|
|
66
|
+
}
|
|
67
|
+
return await ready;
|
|
68
|
+
}
|
|
69
|
+
function invalidate() {
|
|
70
|
+
invalidations.forEach((cb) => cb());
|
|
71
|
+
}
|
|
72
|
+
function dispatchReload() {
|
|
73
|
+
reloadListeners.forEach((cb) => cb());
|
|
74
|
+
}
|
|
75
|
+
async function extract(code, id) {
|
|
76
|
+
if (id)
|
|
77
|
+
modules.set(id, code);
|
|
78
|
+
const len = tokens.size;
|
|
79
|
+
await uno.applyExtractors(code, id, tokens);
|
|
80
|
+
if (tokens.size > len)
|
|
81
|
+
invalidate();
|
|
82
|
+
}
|
|
83
|
+
const filter = (code, id) => {
|
|
84
|
+
if (code.includes(IGNORE_COMMENT))
|
|
85
|
+
return false;
|
|
86
|
+
return code.includes(INCLUDE_COMMENT) || code.includes(CSS_PLACEHOLDER) || rollupFilter(id.replace(/\?v=\w+$/, ""));
|
|
87
|
+
};
|
|
88
|
+
async function getConfig() {
|
|
89
|
+
await ready;
|
|
90
|
+
return rawConfig;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
get ready() {
|
|
94
|
+
return ready;
|
|
95
|
+
},
|
|
96
|
+
tokens,
|
|
97
|
+
modules,
|
|
98
|
+
affectedModules,
|
|
99
|
+
invalidate,
|
|
100
|
+
onInvalidate(fn) {
|
|
101
|
+
invalidations.push(fn);
|
|
102
|
+
},
|
|
103
|
+
filter,
|
|
104
|
+
reloadConfig,
|
|
105
|
+
onReload(fn) {
|
|
106
|
+
reloadListeners.push(fn);
|
|
107
|
+
},
|
|
108
|
+
uno,
|
|
109
|
+
extract,
|
|
110
|
+
getConfig,
|
|
111
|
+
root,
|
|
112
|
+
updateRoot,
|
|
113
|
+
getConfigFileList: () => configFileList
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async function applyTransformers(ctx, original, id, enforce = "default") {
|
|
118
|
+
if (original.includes(IGNORE_COMMENT))
|
|
119
|
+
return;
|
|
120
|
+
const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
|
|
121
|
+
if (!transformers.length)
|
|
122
|
+
return;
|
|
123
|
+
let code = original;
|
|
124
|
+
let s = new MagicString(code);
|
|
125
|
+
const maps = [];
|
|
126
|
+
for (const t of transformers) {
|
|
127
|
+
if (t.idFilter) {
|
|
128
|
+
if (!t.idFilter(id))
|
|
129
|
+
continue;
|
|
130
|
+
} else if (!ctx.filter(code, id)) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
await t.transform(s, id, ctx);
|
|
134
|
+
if (s.hasChanged()) {
|
|
135
|
+
code = s.toString();
|
|
136
|
+
maps.push(s.generateMap({ hires: true, source: id }));
|
|
137
|
+
s = new MagicString(code);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (code !== original) {
|
|
141
|
+
ctx.affectedModules.add(id);
|
|
142
|
+
return {
|
|
143
|
+
code,
|
|
144
|
+
map: remapping(maps, () => null)
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
class PrettyError extends Error {
|
|
150
|
+
constructor(message) {
|
|
151
|
+
super(message);
|
|
152
|
+
this.name = this.constructor.name;
|
|
153
|
+
if (typeof Error.captureStackTrace === "function")
|
|
154
|
+
Error.captureStackTrace(this, this.constructor);
|
|
155
|
+
else
|
|
156
|
+
this.stack = new Error(message).stack;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function handleError(error) {
|
|
160
|
+
if (error instanceof PrettyError)
|
|
161
|
+
consola.error(error.message);
|
|
162
|
+
process.exitCode = 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const defaultConfig = {
|
|
166
|
+
envMode: "build",
|
|
167
|
+
presets: [
|
|
168
|
+
presetUno()
|
|
169
|
+
]
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const name = "unocss";
|
|
173
|
+
async function resolveOptions(options) {
|
|
174
|
+
if (!options.patterns?.length) {
|
|
175
|
+
throw new PrettyError(
|
|
176
|
+
`No glob patterns, try ${cyan(`${name} <path/to/**/*>`)}`
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return options;
|
|
180
|
+
}
|
|
181
|
+
async function build(_options) {
|
|
182
|
+
const fileCache = /* @__PURE__ */ new Map();
|
|
183
|
+
const cwd = _options.cwd || process.cwd();
|
|
184
|
+
const options = await resolveOptions(_options);
|
|
185
|
+
const { config, sources: configSources } = await loadConfig(cwd, options.config);
|
|
186
|
+
const ctx = createContext(config, defaultConfig);
|
|
187
|
+
const files = await fg(options.patterns, { cwd, absolute: true });
|
|
188
|
+
await Promise.all(
|
|
189
|
+
files.map(async (file) => {
|
|
190
|
+
fileCache.set(file, await promises.readFile(file, "utf8"));
|
|
191
|
+
})
|
|
192
|
+
);
|
|
193
|
+
consola.log(green(`${name} v${version}`));
|
|
194
|
+
consola.start(`UnoCSS ${options.watch ? "in watch mode..." : "for production..."}`);
|
|
195
|
+
const debouncedBuild = debounce(
|
|
196
|
+
async () => {
|
|
197
|
+
generate(options).catch(handleError);
|
|
198
|
+
},
|
|
199
|
+
100
|
|
200
|
+
);
|
|
201
|
+
const startWatcher = async () => {
|
|
202
|
+
if (!options.watch)
|
|
203
|
+
return;
|
|
204
|
+
const { watch } = await import('chokidar');
|
|
205
|
+
const { patterns } = options;
|
|
206
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
207
|
+
const watcher = watch(patterns, {
|
|
208
|
+
ignoreInitial: true,
|
|
209
|
+
ignorePermissionErrors: true,
|
|
210
|
+
ignored,
|
|
211
|
+
cwd
|
|
212
|
+
});
|
|
213
|
+
if (configSources.length)
|
|
214
|
+
watcher.add(configSources);
|
|
215
|
+
watcher.on("all", async (type, file) => {
|
|
216
|
+
const absolutePath = resolve(cwd, file);
|
|
217
|
+
if (configSources.includes(absolutePath)) {
|
|
218
|
+
await ctx.reloadConfig();
|
|
219
|
+
consola.info(`${cyan(basename(file))} changed, setting new config`);
|
|
220
|
+
} else {
|
|
221
|
+
consola.log(`${green(type)} ${dim(file)}`);
|
|
222
|
+
if (type.startsWith("unlink"))
|
|
223
|
+
fileCache.delete(absolutePath);
|
|
224
|
+
else
|
|
225
|
+
fileCache.set(absolutePath, await promises.readFile(absolutePath, "utf8"));
|
|
226
|
+
}
|
|
227
|
+
debouncedBuild();
|
|
228
|
+
});
|
|
229
|
+
consola.info(
|
|
230
|
+
`Watching for changes in ${toArray(patterns).map((i) => cyan(i)).join(", ")}`
|
|
231
|
+
);
|
|
232
|
+
};
|
|
233
|
+
await generate(options);
|
|
234
|
+
await startWatcher().catch(handleError);
|
|
235
|
+
function transformFiles(sources, enforce = "default") {
|
|
236
|
+
return Promise.all(
|
|
237
|
+
sources.map(({ id, code, transformedCode }) => new Promise((resolve2) => {
|
|
238
|
+
applyTransformers(ctx, code, id, enforce).then((transformsRes) => {
|
|
239
|
+
resolve2({ id, code, transformedCode: transformsRes?.code || transformedCode });
|
|
240
|
+
});
|
|
241
|
+
}))
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
async function generate(options2) {
|
|
245
|
+
const sourceCache = Array.from(fileCache).map(([id, code]) => ({ id, code }));
|
|
246
|
+
const outFile = resolve(options2.cwd || process.cwd(), options2.outFile ?? "uno.css");
|
|
247
|
+
const preTransform = await transformFiles(sourceCache, "pre");
|
|
248
|
+
const defaultTransform = await transformFiles(preTransform);
|
|
249
|
+
const postTransform = await transformFiles(defaultTransform, "post");
|
|
250
|
+
await Promise.all(
|
|
251
|
+
postTransform.filter(({ transformedCode }) => !!transformedCode).map(({ transformedCode, id }) => new Promise((resolve2) => {
|
|
252
|
+
if (existsSync(id))
|
|
253
|
+
promises.writeFile(id, transformedCode, "utf-8").then(resolve2);
|
|
254
|
+
}))
|
|
255
|
+
);
|
|
256
|
+
const { css, matched } = await ctx.uno.generate(
|
|
257
|
+
[...postTransform.map(({ code, transformedCode }) => transformedCode ?? code)].join("\n"),
|
|
258
|
+
{
|
|
259
|
+
preflights: options2.preflights,
|
|
260
|
+
minify: options2.minify
|
|
261
|
+
}
|
|
262
|
+
);
|
|
263
|
+
const dir = dirname(outFile);
|
|
264
|
+
if (!existsSync(dir))
|
|
265
|
+
await promises.mkdir(dir, { recursive: true });
|
|
266
|
+
await promises.writeFile(outFile, css, "utf-8");
|
|
267
|
+
if (!options2.watch) {
|
|
268
|
+
consola.success(
|
|
269
|
+
`${[...matched].length} utilities generated to ${cyan(
|
|
270
|
+
relative(process.cwd(), outFile)
|
|
271
|
+
)}
|
|
272
|
+
`
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export { build as b, handleError as h, resolveOptions as r, version as v };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unocss/cli",
|
|
3
|
-
"version": "0.45.
|
|
3
|
+
"version": "0.45.22",
|
|
4
4
|
"description": "CLI for UnoCSS",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Johann Schopplich",
|
|
@@ -39,15 +39,18 @@
|
|
|
39
39
|
"node": ">=14"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@unocss/
|
|
42
|
+
"@ampproject/remapping": "^2.2.0",
|
|
43
|
+
"@rollup/pluginutils": "^4.2.1",
|
|
44
|
+
"@unocss/config": "0.45.22",
|
|
45
|
+
"@unocss/core": "0.45.22",
|
|
46
|
+
"@unocss/preset-uno": "0.45.22",
|
|
45
47
|
"cac": "^6.7.14",
|
|
46
48
|
"chokidar": "^3.5.3",
|
|
47
49
|
"colorette": "^2.0.19",
|
|
48
50
|
"consola": "^2.15.3",
|
|
49
|
-
"fast-glob": "^3.2.
|
|
50
|
-
"
|
|
51
|
+
"fast-glob": "^3.2.12",
|
|
52
|
+
"magic-string": "^0.26.3",
|
|
53
|
+
"pathe": "^0.3.7",
|
|
51
54
|
"perfect-debounce": "^0.1.3"
|
|
52
55
|
},
|
|
53
56
|
"scripts": {
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { promises, existsSync } from 'fs';
|
|
2
|
-
import { resolve, dirname, relative, basename } from 'pathe';
|
|
3
|
-
import fg from 'fast-glob';
|
|
4
|
-
import consola from 'consola';
|
|
5
|
-
import { cyan, green, dim } from 'colorette';
|
|
6
|
-
import { debounce } from 'perfect-debounce';
|
|
7
|
-
import { createGenerator, toArray } from '@unocss/core';
|
|
8
|
-
import { loadConfig } from '@unocss/config';
|
|
9
|
-
import presetUno from '@unocss/preset-uno';
|
|
10
|
-
|
|
11
|
-
const version = "0.45.20";
|
|
12
|
-
|
|
13
|
-
class PrettyError extends Error {
|
|
14
|
-
constructor(message) {
|
|
15
|
-
super(message);
|
|
16
|
-
this.name = this.constructor.name;
|
|
17
|
-
if (typeof Error.captureStackTrace === "function")
|
|
18
|
-
Error.captureStackTrace(this, this.constructor);
|
|
19
|
-
else
|
|
20
|
-
this.stack = new Error(message).stack;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function handleError(error) {
|
|
24
|
-
if (error instanceof PrettyError)
|
|
25
|
-
consola.error(error.message);
|
|
26
|
-
process.exitCode = 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const defaultConfig = {
|
|
30
|
-
envMode: "build",
|
|
31
|
-
presets: [
|
|
32
|
-
presetUno()
|
|
33
|
-
]
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const name = "unocss";
|
|
37
|
-
async function resolveOptions(options) {
|
|
38
|
-
if (!options.patterns?.length) {
|
|
39
|
-
throw new PrettyError(
|
|
40
|
-
`No glob patterns, try ${cyan(`${name} <path/to/**/*>`)}`
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
return options;
|
|
44
|
-
}
|
|
45
|
-
async function build(_options) {
|
|
46
|
-
const fileCache = /* @__PURE__ */ new Map();
|
|
47
|
-
const cwd = _options.cwd || process.cwd();
|
|
48
|
-
const options = await resolveOptions(_options);
|
|
49
|
-
const { config, sources: configSources } = await loadConfig(cwd, options.config);
|
|
50
|
-
const uno = createGenerator(
|
|
51
|
-
config,
|
|
52
|
-
defaultConfig
|
|
53
|
-
);
|
|
54
|
-
const files = await fg(options.patterns, { cwd, absolute: true });
|
|
55
|
-
await Promise.all(
|
|
56
|
-
files.map(async (file) => {
|
|
57
|
-
fileCache.set(file, await promises.readFile(file, "utf8"));
|
|
58
|
-
})
|
|
59
|
-
);
|
|
60
|
-
consola.log(green(`${name} v${version}`));
|
|
61
|
-
consola.start(`UnoCSS ${options.watch ? "in watch mode..." : "for production..."}`);
|
|
62
|
-
const debouncedBuild = debounce(
|
|
63
|
-
async () => {
|
|
64
|
-
generate(options).catch(handleError);
|
|
65
|
-
},
|
|
66
|
-
100
|
|
67
|
-
);
|
|
68
|
-
const startWatcher = async () => {
|
|
69
|
-
if (!options.watch)
|
|
70
|
-
return;
|
|
71
|
-
const { watch } = await import('chokidar');
|
|
72
|
-
const { patterns } = options;
|
|
73
|
-
const ignored = ["**/{.git,node_modules}/**"];
|
|
74
|
-
const watcher = watch(patterns, {
|
|
75
|
-
ignoreInitial: true,
|
|
76
|
-
ignorePermissionErrors: true,
|
|
77
|
-
ignored,
|
|
78
|
-
cwd
|
|
79
|
-
});
|
|
80
|
-
if (configSources.length)
|
|
81
|
-
watcher.add(configSources);
|
|
82
|
-
watcher.on("all", async (type, file) => {
|
|
83
|
-
const absolutePath = resolve(cwd, file);
|
|
84
|
-
if (configSources.includes(absolutePath)) {
|
|
85
|
-
uno.setConfig((await loadConfig()).config);
|
|
86
|
-
consola.info(`${cyan(basename(file))} changed, setting new config`);
|
|
87
|
-
} else {
|
|
88
|
-
consola.log(`${green(type)} ${dim(file)}`);
|
|
89
|
-
if (type.startsWith("unlink"))
|
|
90
|
-
fileCache.delete(absolutePath);
|
|
91
|
-
else
|
|
92
|
-
fileCache.set(absolutePath, await promises.readFile(absolutePath, "utf8"));
|
|
93
|
-
}
|
|
94
|
-
debouncedBuild();
|
|
95
|
-
});
|
|
96
|
-
consola.info(
|
|
97
|
-
`Watching for changes in ${toArray(patterns).map((i) => cyan(i)).join(", ")}`
|
|
98
|
-
);
|
|
99
|
-
};
|
|
100
|
-
await generate(options);
|
|
101
|
-
startWatcher();
|
|
102
|
-
async function generate(options2) {
|
|
103
|
-
const outFile = resolve(options2.cwd || process.cwd(), options2.outFile ?? "uno.css");
|
|
104
|
-
const { css, matched } = await uno.generate(
|
|
105
|
-
[...fileCache].join("\n"),
|
|
106
|
-
{
|
|
107
|
-
preflights: options2.preflights,
|
|
108
|
-
minify: options2.minify
|
|
109
|
-
}
|
|
110
|
-
);
|
|
111
|
-
const dir = dirname(outFile);
|
|
112
|
-
if (!existsSync(dir))
|
|
113
|
-
await promises.mkdir(dir, { recursive: true });
|
|
114
|
-
await promises.writeFile(outFile, css, "utf-8");
|
|
115
|
-
if (!options2.watch) {
|
|
116
|
-
consola.success(
|
|
117
|
-
`${[...matched].length} utilities generated to ${cyan(
|
|
118
|
-
relative(process.cwd(), outFile)
|
|
119
|
-
)}
|
|
120
|
-
`
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export { build as b, handleError as h, resolveOptions as r, version as v };
|