@baic/yolk-cli 2.1.0-alpha.6 → 2.1.0-alpha.9
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/es/index.d.ts +1 -1
- package/es/index.js +1 -497
- package/es/yolk.d.ts +2 -0
- package/es/yolk.js +2 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -633
- package/lib/yolk.d.ts +2 -0
- package/lib/yolk.js +2 -0
- package/package.json +2 -2
package/es/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
|
|
2
|
+
import './yolk';
|
package/es/index.js
CHANGED
|
@@ -1,498 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import t from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
|
|
6
|
-
import s from "lodash/isString";
|
|
7
|
-
|
|
8
|
-
import o from "lodash/pick";
|
|
9
|
-
|
|
10
|
-
import r from "lodash/floor";
|
|
11
|
-
|
|
12
|
-
import i from "lodash/chunk";
|
|
13
|
-
|
|
14
|
-
function n(e, t) {
|
|
15
|
-
var s = Object.keys(e);
|
|
16
|
-
if (Object.getOwnPropertySymbols) {
|
|
17
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
18
|
-
t && (o = o.filter((function(t) {
|
|
19
|
-
return Object.getOwnPropertyDescriptor(e, t).enumerable;
|
|
20
|
-
}))), s.push.apply(s, o);
|
|
21
|
-
}
|
|
22
|
-
return s;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function c(e) {
|
|
26
|
-
for (var s = 1; s < arguments.length; s++) {
|
|
27
|
-
var o = null != arguments[s] ? arguments[s] : {};
|
|
28
|
-
s % 2 ? n(Object(o), !0).forEach((function(s) {
|
|
29
|
-
t(e, s, o[s]);
|
|
30
|
-
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(o)) : n(Object(o)).forEach((function(t) {
|
|
31
|
-
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(o, t));
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
return e;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
import a from "fs";
|
|
38
|
-
|
|
39
|
-
import m from "path";
|
|
40
|
-
|
|
41
|
-
import p from "os";
|
|
42
|
-
|
|
43
|
-
import l from "commander";
|
|
44
|
-
|
|
45
|
-
import d from "inquirer";
|
|
46
|
-
|
|
47
|
-
import { spawn as u, execSync as y } from "child_process";
|
|
48
|
-
|
|
49
|
-
import f from "ora";
|
|
50
|
-
|
|
51
|
-
import g from "glob";
|
|
52
|
-
|
|
53
|
-
import h from "minimatch";
|
|
54
|
-
|
|
55
|
-
import b from "mustache";
|
|
56
|
-
|
|
57
|
-
import j from "mkdirp";
|
|
58
|
-
|
|
59
|
-
import S from "rimraf";
|
|
60
|
-
|
|
61
|
-
import { format as k } from "prettier";
|
|
62
|
-
|
|
63
|
-
import * as x from "miniprogram-ci";
|
|
64
|
-
|
|
65
|
-
import v from "../package.json";
|
|
66
|
-
|
|
67
|
-
const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY YOLK #####", O = {
|
|
68
|
-
ts: "typescript",
|
|
69
|
-
tsx: "typescript",
|
|
70
|
-
less: "less",
|
|
71
|
-
sass: "scss",
|
|
72
|
-
scss: "scss",
|
|
73
|
-
css: "css"
|
|
74
|
-
}, E = "utf-8", F = 60, B = [ "**/node_modules/**", "**/.umi/**", "**/.umi-production/**", "**/build/**", "**/dist/**", "**/lib/**", "**/es/**", "**/public/**", "**/assets/**", "**/h5+app/**", "**/mock/**", "**/yolk/**", "**/yolk-web/**", "**/yolk-web-ui/**", "**/yolk-mobile/**", "**/yolk-mobile-ui/**", "**/yolk-miniprogram/**", "**/yolk-miniprogram-ui/**" ], D = f(), q = e => e && D.warn(Buffer.from(e, E).toString()), I = e => e && D.fail(Buffer.from(e, E).toString()), Q = e => e && D.succeed(Buffer.from(e, E).toString()), R = e => e && D.info(Buffer.from(e, E).toString()), T = e => "win32" === process.platform ? `${e}.cmd` : e, L = () => {
|
|
75
|
-
Q("yolk complete!"), process.exit(0);
|
|
76
|
-
}, N = () => {
|
|
77
|
-
q("yolk break!"), process.exit(0);
|
|
78
|
-
}, _ = ({command: e, args: t, complete: s, close: o, exit: r = !0}) => {
|
|
79
|
-
const i = u(T(e), t || [], {
|
|
80
|
-
stdio: "inherit"
|
|
81
|
-
}).on("close", (e => {
|
|
82
|
-
e ? (o && o(), I("yolk close!"), process.exit(e)) : (s && s(), r && L());
|
|
83
|
-
}));
|
|
84
|
-
process.on("SIGINT", (() => {
|
|
85
|
-
l.runningCommand && l.runningCommand.kill("SIGKILL"), i.kill(), N();
|
|
86
|
-
}));
|
|
87
|
-
}, A = (e, t, s) => {
|
|
88
|
-
d.prompt([ {
|
|
89
|
-
type: "list",
|
|
90
|
-
name: "type",
|
|
91
|
-
message: "\u9009\u62e9\u6a21\u7248",
|
|
92
|
-
default: "web",
|
|
93
|
-
choices: [ {
|
|
94
|
-
name: "web template(umi framework)",
|
|
95
|
-
value: "umi-web"
|
|
96
|
-
}, {
|
|
97
|
-
name: "mobile template(umi framework)",
|
|
98
|
-
value: "umi-mobile"
|
|
99
|
-
}, {
|
|
100
|
-
name: "web template(ice framework)",
|
|
101
|
-
value: "ice-web"
|
|
102
|
-
}, {
|
|
103
|
-
name: "mobile template(ice framework)",
|
|
104
|
-
value: "ice-mobile"
|
|
105
|
-
}, {
|
|
106
|
-
name: "miniprogram template",
|
|
107
|
-
value: "miniprogram"
|
|
108
|
-
} ]
|
|
109
|
-
}, {
|
|
110
|
-
type: "input",
|
|
111
|
-
name: "projectName",
|
|
112
|
-
message: "\u9879\u76ee\u540d\u79f0",
|
|
113
|
-
default: m.basename(m.basename(process.cwd()))
|
|
114
|
-
}, {
|
|
115
|
-
type: "list",
|
|
116
|
-
name: "dependenciesInstallType",
|
|
117
|
-
message: "\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",
|
|
118
|
-
default: !1,
|
|
119
|
-
choices: [ {
|
|
120
|
-
name: "yarn install",
|
|
121
|
-
value: "yarn"
|
|
122
|
-
}, {
|
|
123
|
-
name: "npm install",
|
|
124
|
-
value: "npm"
|
|
125
|
-
}, {
|
|
126
|
-
name: "\u4e0d\u521d\u59cb\u5316",
|
|
127
|
-
value: !1
|
|
128
|
-
} ]
|
|
129
|
-
} ]).then((o => {
|
|
130
|
-
const r = {
|
|
131
|
-
projectName: o.projectName,
|
|
132
|
-
mobile: "umi-mobile" === o.type,
|
|
133
|
-
dependenciesInstallType: o.dependenciesInstallType,
|
|
134
|
-
yolkVersion: v.version
|
|
135
|
-
};
|
|
136
|
-
t || (t = m.join(__dirname, `../templates/${o.type}`)), Q(`\u590d\u5236\u6a21\u7248 ${m.basename(t)}`);
|
|
137
|
-
const i = g.sync("**/*", {
|
|
138
|
-
cwd: t,
|
|
139
|
-
dot: !0,
|
|
140
|
-
ignore: [ "**/node_modules/**", "**/.git/**", "**/.DS_Store", "**/.idea/**" ]
|
|
141
|
-
});
|
|
142
|
-
if (i.forEach((s => {
|
|
143
|
-
if (!t) return;
|
|
144
|
-
const o = m.join(t, s);
|
|
145
|
-
if (!a.statSync(o).isDirectory()) if (s.endsWith(".tpl")) {
|
|
146
|
-
const t = a.readFileSync(o, E), i = m.join(e, s.replace(/\.tpl$/u, "")), n = b.render(t, r);
|
|
147
|
-
j.sync(m.dirname(i)), Q(`\u521b\u5efa ${m.relative(e, i)}`), a.writeFileSync(i, n, E);
|
|
148
|
-
} else {
|
|
149
|
-
Q(`\u521b\u5efa ${s}`);
|
|
150
|
-
const t = m.join(e, s);
|
|
151
|
-
j.sync(m.dirname(t)), a.copyFileSync(o, t);
|
|
152
|
-
}
|
|
153
|
-
})), Q("\u590d\u5236\u6a21\u7248 success!"), s && a.existsSync(t) && S(t, (() => {
|
|
154
|
-
Q(`\u7f13\u5b58\u5220\u9664 success! ${m.basename(t || "")}`);
|
|
155
|
-
})), o.dependenciesInstallType) switch (Q("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),
|
|
156
|
-
o.dependenciesInstallType) {
|
|
157
|
-
case "npm":
|
|
158
|
-
_({
|
|
159
|
-
command: "npm",
|
|
160
|
-
args: [ "install" ]
|
|
161
|
-
});
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
case "yarn":
|
|
165
|
-
default:
|
|
166
|
-
_({
|
|
167
|
-
command: "yarn",
|
|
168
|
-
args: [ "install" ]
|
|
169
|
-
});
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
Q("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863");
|
|
173
|
-
}));
|
|
174
|
-
}, K = (e, t) => A(e, t, !0), C = () => {
|
|
175
|
-
const e = g.sync("*.yolkrc*", {
|
|
176
|
-
cwd: $,
|
|
177
|
-
dot: !0
|
|
178
|
-
});
|
|
179
|
-
if (!e.length) return {};
|
|
180
|
-
const t = m.join($, e[0]);
|
|
181
|
-
if (!a.existsSync(t)) return {};
|
|
182
|
-
try {
|
|
183
|
-
return JSON.parse(a.readFileSync(t, E)) || {};
|
|
184
|
-
} catch (s) {
|
|
185
|
-
return I(s.message || ".yolkrc\u8f6c\u6362\u9519\u8bef"), {};
|
|
186
|
-
}
|
|
187
|
-
}, J = () => {
|
|
188
|
-
const e = m.join($, ".prettierrc");
|
|
189
|
-
if (!a.existsSync(e)) {
|
|
190
|
-
if (a.existsSync(require.resolve("@umijs/fabric/dist/prettier"))) {
|
|
191
|
-
const e = require("@umijs/fabric/dist/prettier");
|
|
192
|
-
return e;
|
|
193
|
-
}
|
|
194
|
-
return {};
|
|
195
|
-
}
|
|
196
|
-
try {
|
|
197
|
-
return JSON.parse(a.readFileSync(e, E)) || {};
|
|
198
|
-
} catch (t) {
|
|
199
|
-
return I(t.message || ".prettierrc\u8f6c\u6362\u9519\u8bef"), {};
|
|
200
|
-
}
|
|
201
|
-
}, M = () => {
|
|
202
|
-
const e = m.join($, "project.config.json");
|
|
203
|
-
if (!a.existsSync(e)) return {};
|
|
204
|
-
try {
|
|
205
|
-
return JSON.parse(a.readFileSync(e, E)) || {};
|
|
206
|
-
} catch (t) {
|
|
207
|
-
return I(t.message || "project.config.json\u8f6c\u6362\u9519\u8bef"), {};
|
|
208
|
-
}
|
|
209
|
-
}, U = () => {
|
|
210
|
-
const e = m.join($, "package.json");
|
|
211
|
-
if (!a.existsSync(e)) return {};
|
|
212
|
-
try {
|
|
213
|
-
return JSON.parse(a.readFileSync(e, E)) || {};
|
|
214
|
-
} catch (t) {
|
|
215
|
-
return I(t.message || "package.json\u8f6c\u6362\u9519\u8bef"), {};
|
|
216
|
-
}
|
|
217
|
-
}, V = () => a.existsSync(m.join($, "project.config.json")), G = () => a.existsSync(m.join($, ".icerc.ts")) || a.existsSync(m.join($, ".icerc.js")) || a.existsSync(m.join($, ".ice.ts")) || a.existsSync(m.join($, ".ice.js")), H = () => a.existsSync(m.join($, ".icerc.ts")) ? ".icerc.ts" : a.existsSync(m.join($, ".icerc.js")) ? ".icerc.js" : a.existsSync(m.join($, ".ice.ts")) ? ".ice.ts" : ".ice.js", Y = () => {
|
|
218
|
-
const e = m.join($, "project.config.json");
|
|
219
|
-
if (a.existsSync(e)) {
|
|
220
|
-
const t = require(e);
|
|
221
|
-
return t.appid;
|
|
222
|
-
}
|
|
223
|
-
return "";
|
|
224
|
-
}, W = () => a.existsSync(m.join($, "project.tt.json")) && 0 === Y().indexOf("tt"), z = () => 0 === Y().indexOf("20"), X = () => {
|
|
225
|
-
const e = C(), t = V() ? require.resolve("@baic/eslint-config-yolk-miniprogram") : require.resolve("@baic/eslint-config-yolk"), s = g.sync("*.eslintrc*", {
|
|
226
|
-
cwd: $,
|
|
227
|
-
dot: !0
|
|
228
|
-
}), o = s[0];
|
|
229
|
-
return !1 === e.strict && o && a.existsSync(o) ? o : t;
|
|
230
|
-
}, Z = () => {
|
|
231
|
-
const e = g.sync("*.stylelintrc*", {
|
|
232
|
-
cwd: $,
|
|
233
|
-
dot: !0
|
|
234
|
-
}), t = e[0];
|
|
235
|
-
return t;
|
|
236
|
-
}, ee = () => {
|
|
237
|
-
const e = m.join($, ".git/"), t = m.join($, ".git/hooks"), s = m.join(t, "pre-commit"), o = a.existsSync(e), r = a.existsSync(s), i = r && a.readFileSync(s, "utf8").includes(P);
|
|
238
|
-
if (o && (!r || !i)) {
|
|
239
|
-
j.sync(t), a.writeFileSync(s, [ "#!/usr/bin/env bash", "npx yolk pre-commit", "RESULT=$?", "[ $RESULT -ne 0 ] && exit 1", "exit 0", P ].join(p.EOL), "utf8");
|
|
240
|
-
try {
|
|
241
|
-
a.chmodSync(s, "777");
|
|
242
|
-
} catch (n) {
|
|
243
|
-
I(`chmod ${s} failed: ${n.message}`);
|
|
244
|
-
}
|
|
245
|
-
Q("Create pre-commit hook");
|
|
246
|
-
}
|
|
247
|
-
}, te = () => {
|
|
248
|
-
const e = C(), t = !1 !== e.strict, s = e.eslintIgnore, o = e.stylelintIgnore;
|
|
249
|
-
w().then((e => {
|
|
250
|
-
const r = new Promise(((s, r) => {
|
|
251
|
-
const n = Z();
|
|
252
|
-
if (n) {
|
|
253
|
-
const p = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e => B.every((t => !h(e, t, {
|
|
254
|
-
matchBase: !0
|
|
255
|
-
}))))).filter((e => "string" === typeof o ? !h(e, o, {
|
|
256
|
-
matchBase: !0
|
|
257
|
-
}) : o instanceof RegExp ? !o.test(e) : !Array.isArray(o) || o.every((t => "string" === typeof t ? !h(e, t, {
|
|
258
|
-
matchBase: !0
|
|
259
|
-
}) : !(t instanceof RegExp) || !t.test(e))))).map((e => {
|
|
260
|
-
const t = m.join($, e);
|
|
261
|
-
return a.existsSync(t) ? t : null;
|
|
262
|
-
})).filter((e => !!e));
|
|
263
|
-
if (p.forEach((e => {
|
|
264
|
-
if (e && a.existsSync(e)) {
|
|
265
|
-
const t = m.extname(e).replace(/^\./u, ""), s = a.readFileSync(e, "utf8"), o = k(s, c({
|
|
266
|
-
parser: O[t]
|
|
267
|
-
}, J()));
|
|
268
|
-
a.writeFileSync(e, o, "utf8");
|
|
269
|
-
}
|
|
270
|
-
})), Q("style prettier success!"), p.length >= F) {
|
|
271
|
-
const e = [];
|
|
272
|
-
i(p, 20).forEach((s => {
|
|
273
|
-
e.push(new Promise(((e, o) => {
|
|
274
|
-
_({
|
|
275
|
-
command: "stylelint",
|
|
276
|
-
args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", n, ...s ],
|
|
277
|
-
complete: e,
|
|
278
|
-
close: o,
|
|
279
|
-
exit: !1
|
|
280
|
-
});
|
|
281
|
-
})));
|
|
282
|
-
}));
|
|
283
|
-
const o = process.getMaxListeners(), c = i(e, o ? o / 2 : 2);
|
|
284
|
-
let a = 0;
|
|
285
|
-
const m = () => {
|
|
286
|
-
a < c.length ? Promise.all(c[a]).then((() => {
|
|
287
|
-
a++, m();
|
|
288
|
-
})).catch(r) : s();
|
|
289
|
-
};
|
|
290
|
-
m();
|
|
291
|
-
} else p.length && _({
|
|
292
|
-
command: "stylelint",
|
|
293
|
-
args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", n, ...p ],
|
|
294
|
-
complete: s,
|
|
295
|
-
close: r,
|
|
296
|
-
exit: !1
|
|
297
|
-
});
|
|
298
|
-
} else s();
|
|
299
|
-
})), n = () => {
|
|
300
|
-
const o = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.([t|j]sx?)$/iu.test(e))).map((e => {
|
|
301
|
-
const t = m.join($, e);
|
|
302
|
-
return a.existsSync(t) ? t : null;
|
|
303
|
-
})).filter((e => !!e));
|
|
304
|
-
if (o.length) {
|
|
305
|
-
o.forEach((e => {
|
|
306
|
-
if (e && a.existsSync(e)) {
|
|
307
|
-
const t = m.extname(e).replace(/^\./u, ""), s = a.readFileSync(e, "utf8"), o = k(s, c({
|
|
308
|
-
parser: O[t]
|
|
309
|
-
}, J()));
|
|
310
|
-
a.writeFileSync(e, o, "utf8");
|
|
311
|
-
}
|
|
312
|
-
})), Q("script prettier success!");
|
|
313
|
-
const e = X();
|
|
314
|
-
if (e) {
|
|
315
|
-
const r = o.filter((e => B.every((t => !h(e, t, {
|
|
316
|
-
matchBase: !0
|
|
317
|
-
}))))).filter((e => "string" === typeof s ? !h(e, s, {
|
|
318
|
-
matchBase: !0
|
|
319
|
-
}) : s instanceof RegExp ? !s.test(e) : !Array.isArray(s) || s.every((t => "string" === typeof t ? !h(e, t, {
|
|
320
|
-
matchBase: !0
|
|
321
|
-
}) : !(t instanceof RegExp) || !t.test(e)))));
|
|
322
|
-
if (t && (q("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),
|
|
323
|
-
s && q(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${s}\u3002`)), r.length >= F) {
|
|
324
|
-
const s = [];
|
|
325
|
-
i(r, 20).forEach((o => {
|
|
326
|
-
s.push(new Promise((s => {
|
|
327
|
-
_({
|
|
328
|
-
command: "eslint",
|
|
329
|
-
args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...o ],
|
|
330
|
-
complete: s,
|
|
331
|
-
exit: !1
|
|
332
|
-
});
|
|
333
|
-
})));
|
|
334
|
-
}));
|
|
335
|
-
const o = process.getMaxListeners(), n = i(s, o ? o / 2 : 2);
|
|
336
|
-
let c = 0;
|
|
337
|
-
const a = () => {
|
|
338
|
-
c < n.length ? Promise.all(n[c]).then((() => {
|
|
339
|
-
c++, a();
|
|
340
|
-
})) : L();
|
|
341
|
-
};
|
|
342
|
-
a();
|
|
343
|
-
} else r.length && _({
|
|
344
|
-
command: "eslint",
|
|
345
|
-
args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...r ]
|
|
346
|
-
});
|
|
347
|
-
} else q("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6");
|
|
348
|
-
} else L();
|
|
349
|
-
};
|
|
350
|
-
q("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),
|
|
351
|
-
r.then(n);
|
|
352
|
-
}));
|
|
353
|
-
}, se = ({mProject: e, mPrivateKeyPath: t, mVersion: s, mDesc: o, mRobot: r, mQrcodeFormat: i, mQrcodeOutputDest: n, mPagePath: c, mSearchQuery: p}) => {
|
|
354
|
-
const l = a.existsSync(m.join($, ".git")) ? y("git log -1 --pretty=format:%H").toString() : "", d = M(), u = d.appid, f = e || m.join($, "dist"), g = t || m.join($, `private.${u}.key`);
|
|
355
|
-
if (a.existsSync(f)) {
|
|
356
|
-
if (a.existsSync(g)) {
|
|
357
|
-
const e = U(), t = s || e.version || d.version || "1.0.0", a = o || e.description || d.description, m = `version: ${t};${l ? ` commit: ${l};` : ""}${a ? ` description: ${a};` : ""}`;
|
|
358
|
-
l && R(`commit: ${l}`), R(`dist: ${f}`), R(`key: ${g}`), R(`appid: ${u}`), R(`version: ${t}`),
|
|
359
|
-
R(`desc: ${m}`);
|
|
360
|
-
const y = new x.Project({
|
|
361
|
-
appid: u,
|
|
362
|
-
type: "miniProgram",
|
|
363
|
-
projectPath: f,
|
|
364
|
-
privateKeyPath: g,
|
|
365
|
-
ignores: [ "node_modules/**/*", "**/*.txt", "**/*.key", "**/*.less", "**/*.sass", "**/*.scss", "**/*.css", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.md" ]
|
|
366
|
-
});
|
|
367
|
-
return {
|
|
368
|
-
appid: u,
|
|
369
|
-
options: {
|
|
370
|
-
project: y,
|
|
371
|
-
version: t,
|
|
372
|
-
desc: m,
|
|
373
|
-
setting: d.setting,
|
|
374
|
-
robot: r,
|
|
375
|
-
qrcodeFormat: i,
|
|
376
|
-
qrcodeOutputDest: n,
|
|
377
|
-
pagePath: c,
|
|
378
|
-
searchQuery: p
|
|
379
|
-
}
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`);
|
|
383
|
-
}
|
|
384
|
-
throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${f})`);
|
|
385
|
-
}, oe = () => {
|
|
386
|
-
ee(), process.argv.length > 2 ? l.version(v.version).usage("[command] [options]").option("--clone", "\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>", "\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs", "\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>", '\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((t, i) => {
|
|
387
|
-
const n = e(i), l = n[0], d = n.slice(1), u = t.clone, y = t.template, f = t.docs;
|
|
388
|
-
if (l) switch (R(`yolk version: ${v.version}`), R(`node version: ${process.version}`),
|
|
389
|
-
R(`platform: ${p.platform()}`), R(`memory: ${r(p.freemem() / 1024 / 1024)} MB(${r(p.totalmem() / 1024 / 1024)} MB)`),
|
|
390
|
-
l) {
|
|
391
|
-
case "init":
|
|
392
|
-
if (Q(`yolk ${l} \u5f00\u59cb`), u) if (y) {
|
|
393
|
-
const e = ".yolk", t = m.join($, e);
|
|
394
|
-
a.existsSync(t) && S(t, (() => {
|
|
395
|
-
Q(`\u7f13\u5b58\u5220\u9664 success! ${t}`);
|
|
396
|
-
})), _({
|
|
397
|
-
command: "git",
|
|
398
|
-
args: [ "clone", "-b", "master", "--depth", "1", y, e ].concat(d)
|
|
399
|
-
}), K($, t);
|
|
400
|
-
} else I("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template"); else A($);
|
|
401
|
-
break;
|
|
402
|
-
|
|
403
|
-
case "start":
|
|
404
|
-
V() ? W() ? _({
|
|
405
|
-
command: "taro",
|
|
406
|
-
args: [ "build", "--type", "tt", "--watch" ].concat(d)
|
|
407
|
-
}) : z() ? _({
|
|
408
|
-
command: "taro",
|
|
409
|
-
args: [ "build", "--type", "alipay", "--watch" ].concat(d)
|
|
410
|
-
}) : _({
|
|
411
|
-
command: "taro",
|
|
412
|
-
args: [ "build", "--type", "weapp", "--watch" ].concat(d)
|
|
413
|
-
}) : f ? _({
|
|
414
|
-
command: "dumi",
|
|
415
|
-
args: [ "dev" ].concat(d)
|
|
416
|
-
}) : G() ? _({
|
|
417
|
-
command: "icejs",
|
|
418
|
-
args: [ "start", "--config", H() ].concat(d)
|
|
419
|
-
}) : _({
|
|
420
|
-
command: "umi",
|
|
421
|
-
args: [ "dev" ].concat(d)
|
|
422
|
-
});
|
|
423
|
-
break;
|
|
424
|
-
|
|
425
|
-
case "build":
|
|
426
|
-
V() ? W() ? _({
|
|
427
|
-
command: "taro",
|
|
428
|
-
args: [ "build", "--type", "tt" ].concat(d)
|
|
429
|
-
}) : z() ? _({
|
|
430
|
-
command: "taro",
|
|
431
|
-
args: [ "build", "--type", "alipay" ].concat(d)
|
|
432
|
-
}) : _({
|
|
433
|
-
command: "taro",
|
|
434
|
-
args: [ "build", "--type", "weapp" ].concat(d)
|
|
435
|
-
}) : f ? _({
|
|
436
|
-
command: "dumi",
|
|
437
|
-
args: [ "build" ].concat(d)
|
|
438
|
-
}) : G() ? _({
|
|
439
|
-
command: "icejs",
|
|
440
|
-
args: [ "build", "--config", H() ].concat(d)
|
|
441
|
-
}) : _({
|
|
442
|
-
command: "umi",
|
|
443
|
-
args: [ "build" ].concat(d)
|
|
444
|
-
});
|
|
445
|
-
break;
|
|
446
|
-
|
|
447
|
-
case "pre-commit":
|
|
448
|
-
te();
|
|
449
|
-
break;
|
|
450
|
-
|
|
451
|
-
case "test":
|
|
452
|
-
_({
|
|
453
|
-
command: "umi-test",
|
|
454
|
-
args: [ "--no-cache", "--update-snapshot", "--runInBand", "--detectOpenHandles" ].concat(d)
|
|
455
|
-
});
|
|
456
|
-
break;
|
|
457
|
-
|
|
458
|
-
case "miniapp-upload":
|
|
459
|
-
case "miniprogram-upload":
|
|
460
|
-
if (V()) if (W()) ; else if (z()) ; else {
|
|
461
|
-
const e = se(t), r = e.appid, i = e.options;
|
|
462
|
-
R(`${r}\u4e0a\u4f20\u5f00\u59cb`), x.upload(c(c({}, o(i, [ "project", "version", "desc", "setting", "robot" ])), {}, {
|
|
463
|
-
onProgressUpdate: e => {
|
|
464
|
-
if (s(e)) R(`task: ${e}`); else {
|
|
465
|
-
const t = e.status, s = e.message;
|
|
466
|
-
R(`task(${t}): ${s}`);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
})).then((() => {
|
|
470
|
-
Q(`${r}\u4e0a\u4f20\u5b8c\u6210`);
|
|
471
|
-
}));
|
|
472
|
-
}
|
|
473
|
-
break;
|
|
474
|
-
|
|
475
|
-
case "miniapp-preview":
|
|
476
|
-
case "miniprogram-preview":
|
|
477
|
-
if (V()) if (W()) ; else if (z()) ; else {
|
|
478
|
-
const e = se(t), r = e.appid, i = e.options;
|
|
479
|
-
R(`${r}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`), x.preview(c(c({}, o(i, [ "project", "version", "desc", "setting", "robot", "qrcodeFormat", "qrcodeOutputDest", "pagePath", "searchQuery" ])), {}, {
|
|
480
|
-
onProgressUpdate: e => {
|
|
481
|
-
if (s(e)) R(`task: ${e}`); else {
|
|
482
|
-
const t = e.status, s = e.message;
|
|
483
|
-
R(`task(${t}): ${s}`);
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
})).then((() => {
|
|
487
|
-
Q(`${r}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`);
|
|
488
|
-
}));
|
|
489
|
-
}
|
|
490
|
-
break;
|
|
491
|
-
|
|
492
|
-
default:
|
|
493
|
-
N();
|
|
494
|
-
}
|
|
495
|
-
})).parse(process.argv) : N();
|
|
496
|
-
};
|
|
497
|
-
|
|
498
|
-
oe();
|
|
2
|
+
import"./yolk";
|
package/es/yolk.d.ts
ADDED
package/es/yolk.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
import e from"@babel/runtime/helpers/toArray";import t from"@babel/runtime/helpers/defineProperty";import o from"lodash/isString";import s from"lodash/pick";import r from"lodash/floor";import i from"lodash/chunk";function n(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,s)}return o}function c(e){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?n(Object(s),!0).forEach((function(o){t(e,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):n(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}import{execSync as a,spawn as m}from"child_process";import p from"commander";import l from"fs";import d from"glob";import u from"inquirer";import y from"minimatch";import*as f from"miniprogram-ci";import g from"mkdirp";import h from"mustache";import b from"ora";import j from"os";import S from"path";import{format as k}from"prettier";import x from"rimraf";import v from"../package.json";const w=require("staged-git-files"),$=process.cwd(),P="##### CREATED BY YOLK #####",O={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},E="utf-8",F=60,B=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/mock/**","**/yolk/**","**/yolk-web/**","**/yolk-web-ui/**","**/yolk-mobile/**","**/yolk-mobile-ui/**","**/yolk-miniprogram/**","**/yolk-miniprogram-ui/**"],D=b(),I=e=>e&&D.warn(Buffer.from(e,E).toString()),q=e=>e&&D.fail(Buffer.from(e,E).toString()),Q=e=>e&&D.succeed(Buffer.from(e,E).toString()),R=e=>e&&D.info(Buffer.from(e,E).toString()),T=e=>"win32"===process.platform?`${e}.cmd`:e,L=()=>{Q("yolk complete!"),process.exit(0)},N=()=>{I("yolk break!"),process.exit(0)},_=({command:e,args:t,complete:o,close:s,exit:r=!0})=>{const i=m(T(e),t||[],{stdio:"inherit"}).on("close",(e=>{e?(s&&s(),q("yolk close!"),process.exit(e)):(o&&o(),r&&L())}));process.on("SIGINT",(()=>{p.runningCommand&&p.runningCommand.kill("SIGKILL"),i.kill(),N()}))},A=(e,t,o)=>{u.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"web template(ice framework)",value:"ice-web"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:S.basename(S.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:!1,choices:[{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"},{name:"\u4e0d\u521d\u59cb\u5316",value:!1}]}]).then((s=>{const r={projectName:s.projectName,mobile:"umi-mobile"===s.type,dependenciesInstallType:s.dependenciesInstallType,yolkVersion:v.version};t||(t=S.join(__dirname,`../templates/${s.type}`)),Q(`\u590d\u5236\u6a21\u7248 ${S.basename(t)}`);const i=d.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(i.forEach((o=>{if(!t)return;const s=S.join(t,o);if(!l.statSync(s).isDirectory())if(o.endsWith(".tpl")){const t=l.readFileSync(s,E),i=S.join(e,o.replace(/\.tpl$/u,"")),n=h.render(t,r);g.sync(S.dirname(i)),Q(`\u521b\u5efa ${S.relative(e,i)}`),l.writeFileSync(i,n,E)}else{Q(`\u521b\u5efa ${o}`);const t=S.join(e,o);g.sync(S.dirname(t)),l.copyFileSync(s,t)}})),Q("\u590d\u5236\u6a21\u7248 success!"),o&&l.existsSync(t)&&x(t,(()=>{Q(`\u7f13\u5b58\u5220\u9664 success! ${S.basename(t||"")}`)})),s.dependenciesInstallType)switch(Q("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),s.dependenciesInstallType){case"npm":_({command:"npm",args:["install"]});break;case"yarn":default:_({command:"yarn",args:["install"]});break}Q("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},K=(e,t)=>A(e,t,!0),C=()=>{const e=d.sync("*.yolkrc*",{cwd:$,dot:!0});if(!e.length)return{};const t=S.join($,e[0]);if(!l.existsSync(t))return{};try{return JSON.parse(l.readFileSync(t,E))||{}}catch(o){return q(o.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},J=()=>{const e=S.join($,".prettierrc");if(l.existsSync(e))try{return JSON.parse(l.readFileSync(e,E))||{}}catch(t){return q(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return{singleQuote:!0,trailingComma:"all",printWidth:80,overrides:[{files:".prettierrc",options:{parser:"json"}}]}},M=()=>{const e=S.join($,"project.config.json");if(!l.existsSync(e))return{};try{return JSON.parse(l.readFileSync(e,E))||{}}catch(t){return q(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},U=()=>{const e=S.join($,"package.json");if(!l.existsSync(e))return{};try{return JSON.parse(l.readFileSync(e,E))||{}}catch(t){return q(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},V=()=>l.existsSync(S.join($,"project.config.json")),G=()=>l.existsSync(S.join($,".icerc.ts"))||l.existsSync(S.join($,".icerc.js"))||l.existsSync(S.join($,".ice.ts"))||l.existsSync(S.join($,".ice.js")),H=()=>l.existsSync(require.resolve("@umijs/max")),W=()=>l.existsSync(S.join($,".icerc.ts"))?".icerc.ts":l.existsSync(S.join($,".icerc.js"))?".icerc.js":l.existsSync(S.join($,".ice.ts"))?".ice.ts":".ice.js",Y=()=>{const e=S.join($,"project.config.json");if(l.existsSync(e)){const t=require(e);return t.appid}return""},z=()=>l.existsSync(S.join($,"project.tt.json"))&&0===Y().indexOf("tt"),X=()=>0===Y().indexOf("20"),Z=()=>{const e=C(),t=V()?require.resolve("@baic/eslint-config-yolk-miniprogram"):require.resolve("@baic/eslint-config-yolk"),o=d.sync("*.eslintrc*",{cwd:$,dot:!0}),s=o[0];return!1===e.strict&&s&&l.existsSync(s)?s:t},ee=()=>{const e=d.sync("*.stylelintrc*",{cwd:$,dot:!0}),t=e[0];return t},te=()=>{const e=S.join($,".git/"),t=S.join($,".git/hooks"),o=S.join(t,"pre-commit"),s=l.existsSync(e),r=l.existsSync(o),i=r&&l.readFileSync(o,"utf8").includes(P);if(s&&(!r||!i)){g.sync(t),l.writeFileSync(o,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",P].join(j.EOL),"utf8");try{l.chmodSync(o,"777")}catch(n){q(`chmod ${o} failed: ${n.message}`)}Q("Create pre-commit hook")}},oe=()=>{const e=C(),t=!1!==e.strict,o=e.eslintIgnore,s=e.stylelintIgnore;w().then((e=>{const r=new Promise(((o,r)=>{const n=ee();if(n){const a=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e=>B.every((t=>!y(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof s?!y(e,s,{matchBase:!0}):s instanceof RegExp?!s.test(e):!Array.isArray(s)||s.every((t=>"string"===typeof t?!y(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e))))).map((e=>{const t=S.join($,e);return l.existsSync(t)?t:null})).filter((e=>!!e));if(a.forEach((e=>{if(e&&l.existsSync(e)){const t=S.extname(e).replace(/^\./u,""),o=l.readFileSync(e,"utf8"),s=k(o,c({parser:O[t]},J()));l.writeFileSync(e,s,"utf8")}})),Q("style prettier success!"),a.length>=F){const e=[];i(a,20).forEach((o=>{e.push(new Promise(((e,s)=>{_({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",n,...o],complete:e,close:s,exit:!1})})))}));const s=process.getMaxListeners(),c=i(e,s?s/2:2);let m=0;const p=()=>{m<c.length?Promise.all(c[m]).then((()=>{m++,p()})).catch(r):o()};p()}else a.length&&_({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",n,...a],complete:o,close:r,exit:!1})}else o()})),n=()=>{const s=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.([t|j]sx?)$/iu.test(e))).map((e=>{const t=S.join($,e);return l.existsSync(t)?t:null})).filter((e=>!!e));if(s.length){s.forEach((e=>{if(e&&l.existsSync(e)){const t=S.extname(e).replace(/^\./u,""),o=l.readFileSync(e,"utf8"),s=k(o,c({parser:O[t]},J()));l.writeFileSync(e,s,"utf8")}})),Q("script prettier success!");const e=Z();if(e){const r=s.filter((e=>B.every((t=>!y(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof o?!y(e,o,{matchBase:!0}):o instanceof RegExp?!o.test(e):!Array.isArray(o)||o.every((t=>"string"===typeof t?!y(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(t&&(I("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),o&&I(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${o}\u3002`)),r.length>=F){const o=[];i(r,20).forEach((s=>{o.push(new Promise((o=>{_({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...s],complete:o,exit:!1})})))}));const s=process.getMaxListeners(),n=i(o,s?s/2:2);let c=0;const a=()=>{c<n.length?Promise.all(n[c]).then((()=>{c++,a()})):L()};a()}else r.length&&_({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...r]})}else I("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6")}else L()};I("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),r.then(n)}))},se=({mProject:e,mPrivateKeyPath:t,mVersion:o,mDesc:s,mRobot:r,mQrcodeFormat:i,mQrcodeOutputDest:n,mPagePath:c,mSearchQuery:m})=>{const p=l.existsSync(S.join($,".git"))?a("git log -1 --pretty=format:%H").toString():"",d=M(),u=d.appid,y=e||S.join($,"dist"),g=t||S.join($,`private.${u}.key`);if(l.existsSync(y)){if(l.existsSync(g)){const e=U(),t=o||e.version||d.version||"1.0.0",a=s||e.description||d.description,l=`version: ${t};${p?` commit: ${p};`:""}${a?` description: ${a};`:""}`;p&&R(`commit: ${p}`),R(`dist: ${y}`),R(`key: ${g}`),R(`appid: ${u}`),R(`version: ${t}`),R(`desc: ${l}`);const h=new f.Project({appid:u,type:"miniProgram",projectPath:y,privateKeyPath:g,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:u,options:{project:h,version:t,desc:l,setting:d.setting,robot:r,qrcodeFormat:i,qrcodeOutputDest:n,pagePath:c,searchQuery:m}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`)},re=()=>{te(),process.argv.length>2?p.version(v.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((t,i)=>{const n=e(i),a=n[0],m=n.slice(1),p=t.clone,d=t.template,u=t.docs;if(a)switch(R(`yolk version: ${v.version}`),R(`node version: ${process.version}`),R(`platform: ${j.platform()}`),R(`memory: ${r(j.freemem()/1024/1024)} MB(${r(j.totalmem()/1024/1024)} MB)`),a){case"init":if(Q(`yolk ${a} \u5f00\u59cb`),p)if(d){const e=".yolk",t=S.join($,e);l.existsSync(t)&&x(t,(()=>{Q(`\u7f13\u5b58\u5220\u9664 success! ${t}`)})),_({command:"git",args:["clone","-b","master","--depth","1",d,e].concat(m)}),K($,t)}else q("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else A($);break;case"start":V()?z()?_({command:"taro",args:["build","--type","tt","--watch"].concat(m)}):X()?_({command:"taro",args:["build","--type","alipay","--watch"].concat(m)}):_({command:"taro",args:["build","--type","weapp","--watch"].concat(m)}):u?_({command:"dumi",args:["dev"].concat(m)}):G()?_({command:"icejs",args:["start","--config",W()].concat(m)}):H()?_({command:"max",args:["dev"].concat(m)}):_({command:"umi",args:["dev"].concat(m)});break;case"build":V()?z()?_({command:"taro",args:["build","--type","tt"].concat(m)}):X()?_({command:"taro",args:["build","--type","alipay"].concat(m)}):_({command:"taro",args:["build","--type","weapp"].concat(m)}):u?_({command:"dumi",args:["build"].concat(m)}):G()?_({command:"icejs",args:["build","--config",W()].concat(m)}):H()?_({command:"max",args:["build"].concat(m)}):_({command:"umi",args:["build"].concat(m)});break;case"pre-commit":oe();break;case"test":_({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(m)});break;case"miniapp-upload":case"miniprogram-upload":if(V())if(z());else if(X());else{const e=se(t),r=e.appid,i=e.options;R(`${r}\u4e0a\u4f20\u5f00\u59cb`),f.upload(c(c({},s(i,["project","version","desc","setting","robot"])),{},{onProgressUpdate:e=>{if(o(e))R(`task: ${e}`);else{const t=e.status,o=e.message;R(`task(${t}): ${o}`)}}})).then((()=>{Q(`${r}\u4e0a\u4f20\u5b8c\u6210`)}))}break;case"miniapp-preview":case"miniprogram-preview":if(V())if(z());else if(X());else{const e=se(t),r=e.appid,i=e.options;R(`${r}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),f.preview(c(c({},s(i,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"])),{},{onProgressUpdate:e=>{if(o(e))R(`task: ${e}`);else{const t=e.status,o=e.message;R(`task(${t}): ${o}`)}}})).then((()=>{Q(`${r}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}))}break;default:N()}})).parse(process.argv):N()};re();
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
|
|
2
|
+
import './yolk';
|
package/lib/index.js
CHANGED
|
@@ -1,634 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var e = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
-
|
|
6
|
-
function t() {
|
|
7
|
-
const n = e(require("@babel/runtime/helpers/toArray"));
|
|
8
|
-
return t = function() {
|
|
9
|
-
return n;
|
|
10
|
-
}, n;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function n() {
|
|
14
|
-
const t = e(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
return n = function() {
|
|
16
|
-
return t;
|
|
17
|
-
}, t;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function r() {
|
|
21
|
-
const t = e(require("lodash/isString"));
|
|
22
|
-
return r = function() {
|
|
23
|
-
return t;
|
|
24
|
-
}, t;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function i() {
|
|
28
|
-
const t = e(require("lodash/pick"));
|
|
29
|
-
return i = function() {
|
|
30
|
-
return t;
|
|
31
|
-
}, t;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function o() {
|
|
35
|
-
const t = e(require("lodash/floor"));
|
|
36
|
-
return o = function() {
|
|
37
|
-
return t;
|
|
38
|
-
}, t;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function s() {
|
|
42
|
-
const t = e(require("lodash/chunk"));
|
|
43
|
-
return s = function() {
|
|
44
|
-
return t;
|
|
45
|
-
}, t;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function a() {
|
|
49
|
-
const t = e(require("fs"));
|
|
50
|
-
return a = function() {
|
|
51
|
-
return t;
|
|
52
|
-
}, t;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function c() {
|
|
56
|
-
const t = e(require("path"));
|
|
57
|
-
return c = function() {
|
|
58
|
-
return t;
|
|
59
|
-
}, t;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function u() {
|
|
63
|
-
const t = e(require("os"));
|
|
64
|
-
return u = function() {
|
|
65
|
-
return t;
|
|
66
|
-
}, t;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function l() {
|
|
70
|
-
const t = e(require("commander"));
|
|
71
|
-
return l = function() {
|
|
72
|
-
return t;
|
|
73
|
-
}, t;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function f() {
|
|
77
|
-
const t = e(require("inquirer"));
|
|
78
|
-
return f = function() {
|
|
79
|
-
return t;
|
|
80
|
-
}, t;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function d() {
|
|
84
|
-
const e = require("child_process");
|
|
85
|
-
return d = function() {
|
|
86
|
-
return e;
|
|
87
|
-
}, e;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function p() {
|
|
91
|
-
const t = e(require("ora"));
|
|
92
|
-
return p = function() {
|
|
93
|
-
return t;
|
|
94
|
-
}, t;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function m() {
|
|
98
|
-
const t = e(require("glob"));
|
|
99
|
-
return m = function() {
|
|
100
|
-
return t;
|
|
101
|
-
}, t;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function y() {
|
|
105
|
-
const t = e(require("minimatch"));
|
|
106
|
-
return y = function() {
|
|
107
|
-
return t;
|
|
108
|
-
}, t;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function g() {
|
|
112
|
-
const t = e(require("mustache"));
|
|
113
|
-
return g = function() {
|
|
114
|
-
return t;
|
|
115
|
-
}, t;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function h() {
|
|
119
|
-
const t = e(require("mkdirp"));
|
|
120
|
-
return h = function() {
|
|
121
|
-
return t;
|
|
122
|
-
}, t;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function b() {
|
|
126
|
-
const t = e(require("rimraf"));
|
|
127
|
-
return b = function() {
|
|
128
|
-
return t;
|
|
129
|
-
}, t;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function j() {
|
|
133
|
-
const e = require("prettier");
|
|
134
|
-
return j = function() {
|
|
135
|
-
return e;
|
|
136
|
-
}, e;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
function S() {
|
|
140
|
-
const e = w(require("miniprogram-ci"));
|
|
141
|
-
return S = function() {
|
|
142
|
-
return e;
|
|
143
|
-
}, e;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
var k = e(require("../package.json"));
|
|
147
|
-
|
|
148
|
-
function v(e) {
|
|
149
|
-
if ("function" !== typeof WeakMap) return null;
|
|
150
|
-
var t = new WeakMap, n = new WeakMap;
|
|
151
|
-
return (v = function(e) {
|
|
152
|
-
return e ? n : t;
|
|
153
|
-
})(e);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function w(e, t) {
|
|
157
|
-
if (!t && e && e.__esModule) return e;
|
|
158
|
-
if (null === e || "object" !== typeof e && "function" !== typeof e) return {
|
|
159
|
-
default: e
|
|
160
|
-
};
|
|
161
|
-
var n = v(t);
|
|
162
|
-
if (n && n.has(e)) return n.get(e);
|
|
163
|
-
var r = {}, i = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
164
|
-
for (var o in e) if ("default" !== o && Object.prototype.hasOwnProperty.call(e, o)) {
|
|
165
|
-
var s = i ? Object.getOwnPropertyDescriptor(e, o) : null;
|
|
166
|
-
s && (s.get || s.set) ? Object.defineProperty(r, o, s) : r[o] = e[o];
|
|
167
|
-
}
|
|
168
|
-
return r.default = e, n && n.set(e, r), r;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function x(e, t) {
|
|
172
|
-
var n = Object.keys(e);
|
|
173
|
-
if (Object.getOwnPropertySymbols) {
|
|
174
|
-
var r = Object.getOwnPropertySymbols(e);
|
|
175
|
-
t && (r = r.filter((function(t) {
|
|
176
|
-
return Object.getOwnPropertyDescriptor(e, t).enumerable;
|
|
177
|
-
}))), n.push.apply(n, r);
|
|
178
|
-
}
|
|
179
|
-
return n;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function $(e) {
|
|
183
|
-
for (var t = 1; t < arguments.length; t++) {
|
|
184
|
-
var r = null != arguments[t] ? arguments[t] : {};
|
|
185
|
-
t % 2 ? x(Object(r), !0).forEach((function(t) {
|
|
186
|
-
(0, n().default)(e, t, r[t]);
|
|
187
|
-
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : x(Object(r)).forEach((function(t) {
|
|
188
|
-
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
|
|
189
|
-
}));
|
|
190
|
-
}
|
|
191
|
-
return e;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const O = require("staged-git-files"), P = process.cwd(), q = "##### CREATED BY YOLK #####", E = {
|
|
195
|
-
ts: "typescript",
|
|
196
|
-
tsx: "typescript",
|
|
197
|
-
less: "less",
|
|
198
|
-
sass: "scss",
|
|
199
|
-
scss: "scss",
|
|
200
|
-
css: "css"
|
|
201
|
-
}, F = "utf-8", D = 60, B = [ "**/node_modules/**", "**/.umi/**", "**/.umi-production/**", "**/build/**", "**/dist/**", "**/lib/**", "**/es/**", "**/public/**", "**/assets/**", "**/h5+app/**", "**/mock/**", "**/yolk/**", "**/yolk-web/**", "**/yolk-web-ui/**", "**/yolk-mobile/**", "**/yolk-mobile-ui/**", "**/yolk-miniprogram/**", "**/yolk-miniprogram-ui/**" ], I = (0,
|
|
202
|
-
p().default)(), R = e => e && I.warn(Buffer.from(e, F).toString()), Q = e => e && I.fail(Buffer.from(e, F).toString()), T = e => e && I.succeed(Buffer.from(e, F).toString()), _ = e => e && I.info(Buffer.from(e, F).toString()), L = e => "win32" === process.platform ? `${e}.cmd` : e, M = () => {
|
|
203
|
-
T("yolk complete!"), process.exit(0);
|
|
204
|
-
}, N = () => {
|
|
205
|
-
R("yolk break!"), process.exit(0);
|
|
206
|
-
}, A = ({command: e, args: t, complete: n, close: r, exit: i = !0}) => {
|
|
207
|
-
const o = (0, d().spawn)(L(e), t || [], {
|
|
208
|
-
stdio: "inherit"
|
|
209
|
-
}).on("close", (e => {
|
|
210
|
-
e ? (r && r(), Q("yolk close!"), process.exit(e)) : (n && n(), i && M());
|
|
211
|
-
}));
|
|
212
|
-
process.on("SIGINT", (() => {
|
|
213
|
-
l().default.runningCommand && l().default.runningCommand.kill("SIGKILL"), o.kill(),
|
|
214
|
-
N();
|
|
215
|
-
}));
|
|
216
|
-
}, K = (e, t, n) => {
|
|
217
|
-
f().default.prompt([ {
|
|
218
|
-
type: "list",
|
|
219
|
-
name: "type",
|
|
220
|
-
message: "\u9009\u62e9\u6a21\u7248",
|
|
221
|
-
default: "web",
|
|
222
|
-
choices: [ {
|
|
223
|
-
name: "web template(umi framework)",
|
|
224
|
-
value: "umi-web"
|
|
225
|
-
}, {
|
|
226
|
-
name: "mobile template(umi framework)",
|
|
227
|
-
value: "umi-mobile"
|
|
228
|
-
}, {
|
|
229
|
-
name: "web template(ice framework)",
|
|
230
|
-
value: "ice-web"
|
|
231
|
-
}, {
|
|
232
|
-
name: "mobile template(ice framework)",
|
|
233
|
-
value: "ice-mobile"
|
|
234
|
-
}, {
|
|
235
|
-
name: "miniprogram template",
|
|
236
|
-
value: "miniprogram"
|
|
237
|
-
} ]
|
|
238
|
-
}, {
|
|
239
|
-
type: "input",
|
|
240
|
-
name: "projectName",
|
|
241
|
-
message: "\u9879\u76ee\u540d\u79f0",
|
|
242
|
-
default: c().default.basename(c().default.basename(process.cwd()))
|
|
243
|
-
}, {
|
|
244
|
-
type: "list",
|
|
245
|
-
name: "dependenciesInstallType",
|
|
246
|
-
message: "\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",
|
|
247
|
-
default: !1,
|
|
248
|
-
choices: [ {
|
|
249
|
-
name: "yarn install",
|
|
250
|
-
value: "yarn"
|
|
251
|
-
}, {
|
|
252
|
-
name: "npm install",
|
|
253
|
-
value: "npm"
|
|
254
|
-
}, {
|
|
255
|
-
name: "\u4e0d\u521d\u59cb\u5316",
|
|
256
|
-
value: !1
|
|
257
|
-
} ]
|
|
258
|
-
} ]).then((r => {
|
|
259
|
-
const i = {
|
|
260
|
-
projectName: r.projectName,
|
|
261
|
-
mobile: "umi-mobile" === r.type,
|
|
262
|
-
dependenciesInstallType: r.dependenciesInstallType,
|
|
263
|
-
yolkVersion: k.default.version
|
|
264
|
-
};
|
|
265
|
-
t || (t = c().default.join(__dirname, `../templates/${r.type}`)), T(`\u590d\u5236\u6a21\u7248 ${c().default.basename(t)}`);
|
|
266
|
-
const o = m().default.sync("**/*", {
|
|
267
|
-
cwd: t,
|
|
268
|
-
dot: !0,
|
|
269
|
-
ignore: [ "**/node_modules/**", "**/.git/**", "**/.DS_Store", "**/.idea/**" ]
|
|
270
|
-
});
|
|
271
|
-
if (o.forEach((n => {
|
|
272
|
-
if (!t) return;
|
|
273
|
-
const r = c().default.join(t, n);
|
|
274
|
-
if (!a().default.statSync(r).isDirectory()) if (n.endsWith(".tpl")) {
|
|
275
|
-
const t = a().default.readFileSync(r, F), o = c().default.join(e, n.replace(/\.tpl$/u, "")), s = g().default.render(t, i);
|
|
276
|
-
h().default.sync(c().default.dirname(o)), T(`\u521b\u5efa ${c().default.relative(e, o)}`),
|
|
277
|
-
a().default.writeFileSync(o, s, F);
|
|
278
|
-
} else {
|
|
279
|
-
T(`\u521b\u5efa ${n}`);
|
|
280
|
-
const t = c().default.join(e, n);
|
|
281
|
-
h().default.sync(c().default.dirname(t)), a().default.copyFileSync(r, t);
|
|
282
|
-
}
|
|
283
|
-
})), T("\u590d\u5236\u6a21\u7248 success!"), n && a().default.existsSync(t) && (0,
|
|
284
|
-
b().default)(t, (() => {
|
|
285
|
-
T(`\u7f13\u5b58\u5220\u9664 success! ${c().default.basename(t || "")}`);
|
|
286
|
-
})), r.dependenciesInstallType) switch (T("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),
|
|
287
|
-
r.dependenciesInstallType) {
|
|
288
|
-
case "npm":
|
|
289
|
-
A({
|
|
290
|
-
command: "npm",
|
|
291
|
-
args: [ "install" ]
|
|
292
|
-
});
|
|
293
|
-
break;
|
|
294
|
-
|
|
295
|
-
case "yarn":
|
|
296
|
-
default:
|
|
297
|
-
A({
|
|
298
|
-
command: "yarn",
|
|
299
|
-
args: [ "install" ]
|
|
300
|
-
});
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
T("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863");
|
|
304
|
-
}));
|
|
305
|
-
}, C = (e, t) => K(e, t, !0), J = () => {
|
|
306
|
-
const e = m().default.sync("*.yolkrc*", {
|
|
307
|
-
cwd: P,
|
|
308
|
-
dot: !0
|
|
309
|
-
});
|
|
310
|
-
if (!e.length) return {};
|
|
311
|
-
const t = c().default.join(P, e[0]);
|
|
312
|
-
if (!a().default.existsSync(t)) return {};
|
|
313
|
-
try {
|
|
314
|
-
return JSON.parse(a().default.readFileSync(t, F)) || {};
|
|
315
|
-
} catch (n) {
|
|
316
|
-
return Q(n.message || ".yolkrc\u8f6c\u6362\u9519\u8bef"), {};
|
|
317
|
-
}
|
|
318
|
-
}, U = () => {
|
|
319
|
-
const e = c().default.join(P, ".prettierrc");
|
|
320
|
-
if (!a().default.existsSync(e)) {
|
|
321
|
-
if (a().default.existsSync(require.resolve("@umijs/fabric/dist/prettier"))) {
|
|
322
|
-
const e = require("@umijs/fabric/dist/prettier");
|
|
323
|
-
return e;
|
|
324
|
-
}
|
|
325
|
-
return {};
|
|
326
|
-
}
|
|
327
|
-
try {
|
|
328
|
-
return JSON.parse(a().default.readFileSync(e, F)) || {};
|
|
329
|
-
} catch (t) {
|
|
330
|
-
return Q(t.message || ".prettierrc\u8f6c\u6362\u9519\u8bef"), {};
|
|
331
|
-
}
|
|
332
|
-
}, W = () => {
|
|
333
|
-
const e = c().default.join(P, "project.config.json");
|
|
334
|
-
if (!a().default.existsSync(e)) return {};
|
|
335
|
-
try {
|
|
336
|
-
return JSON.parse(a().default.readFileSync(e, F)) || {};
|
|
337
|
-
} catch (t) {
|
|
338
|
-
return Q(t.message || "project.config.json\u8f6c\u6362\u9519\u8bef"), {};
|
|
339
|
-
}
|
|
340
|
-
}, V = () => {
|
|
341
|
-
const e = c().default.join(P, "package.json");
|
|
342
|
-
if (!a().default.existsSync(e)) return {};
|
|
343
|
-
try {
|
|
344
|
-
return JSON.parse(a().default.readFileSync(e, F)) || {};
|
|
345
|
-
} catch (t) {
|
|
346
|
-
return Q(t.message || "package.json\u8f6c\u6362\u9519\u8bef"), {};
|
|
347
|
-
}
|
|
348
|
-
}, G = () => a().default.existsSync(c().default.join(P, "project.config.json")), H = () => a().default.existsSync(c().default.join(P, ".icerc.ts")) || a().default.existsSync(c().default.join(P, ".icerc.js")) || a().default.existsSync(c().default.join(P, ".ice.ts")) || a().default.existsSync(c().default.join(P, ".ice.js")), Y = () => a().default.existsSync(c().default.join(P, ".icerc.ts")) ? ".icerc.ts" : a().default.existsSync(c().default.join(P, ".icerc.js")) ? ".icerc.js" : a().default.existsSync(c().default.join(P, ".ice.ts")) ? ".ice.ts" : ".ice.js", z = () => {
|
|
349
|
-
const e = c().default.join(P, "project.config.json");
|
|
350
|
-
if (a().default.existsSync(e)) {
|
|
351
|
-
const t = require(e);
|
|
352
|
-
return t.appid;
|
|
353
|
-
}
|
|
354
|
-
return "";
|
|
355
|
-
}, X = () => a().default.existsSync(c().default.join(P, "project.tt.json")) && 0 === z().indexOf("tt"), Z = () => 0 === z().indexOf("20"), ee = () => {
|
|
356
|
-
const e = J(), t = G() ? require.resolve("@baic/eslint-config-yolk-miniprogram") : require.resolve("@baic/eslint-config-yolk"), n = m().default.sync("*.eslintrc*", {
|
|
357
|
-
cwd: P,
|
|
358
|
-
dot: !0
|
|
359
|
-
}), r = n[0];
|
|
360
|
-
return !1 === e.strict && r && a().default.existsSync(r) ? r : t;
|
|
361
|
-
}, te = () => {
|
|
362
|
-
const e = m().default.sync("*.stylelintrc*", {
|
|
363
|
-
cwd: P,
|
|
364
|
-
dot: !0
|
|
365
|
-
}), t = e[0];
|
|
366
|
-
return t;
|
|
367
|
-
}, ne = () => {
|
|
368
|
-
const e = c().default.join(P, ".git/"), t = c().default.join(P, ".git/hooks"), n = c().default.join(t, "pre-commit"), r = a().default.existsSync(e), i = a().default.existsSync(n), o = i && a().default.readFileSync(n, "utf8").includes(q);
|
|
369
|
-
if (r && (!i || !o)) {
|
|
370
|
-
h().default.sync(t), a().default.writeFileSync(n, [ "#!/usr/bin/env bash", "npx yolk pre-commit", "RESULT=$?", "[ $RESULT -ne 0 ] && exit 1", "exit 0", q ].join(u().default.EOL), "utf8");
|
|
371
|
-
try {
|
|
372
|
-
a().default.chmodSync(n, "777");
|
|
373
|
-
} catch (s) {
|
|
374
|
-
Q(`chmod ${n} failed: ${s.message}`);
|
|
375
|
-
}
|
|
376
|
-
T("Create pre-commit hook");
|
|
377
|
-
}
|
|
378
|
-
}, re = () => {
|
|
379
|
-
const e = J(), t = !1 !== e.strict, n = e.eslintIgnore, r = e.stylelintIgnore;
|
|
380
|
-
O().then((e => {
|
|
381
|
-
const i = new Promise(((n, i) => {
|
|
382
|
-
const o = te();
|
|
383
|
-
if (o) {
|
|
384
|
-
const u = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e => B.every((t => !(0,
|
|
385
|
-
y().default)(e, t, {
|
|
386
|
-
matchBase: !0
|
|
387
|
-
}))))).filter((e => "string" === typeof r ? !(0, y().default)(e, r, {
|
|
388
|
-
matchBase: !0
|
|
389
|
-
}) : r instanceof RegExp ? !r.test(e) : !Array.isArray(r) || r.every((t => "string" === typeof t ? !(0,
|
|
390
|
-
y().default)(e, t, {
|
|
391
|
-
matchBase: !0
|
|
392
|
-
}) : !(t instanceof RegExp) || !t.test(e))))).map((e => {
|
|
393
|
-
const t = c().default.join(P, e);
|
|
394
|
-
return a().default.existsSync(t) ? t : null;
|
|
395
|
-
})).filter((e => !!e));
|
|
396
|
-
if (u.forEach((e => {
|
|
397
|
-
if (e && a().default.existsSync(e)) {
|
|
398
|
-
const t = c().default.extname(e).replace(/^\./u, ""), n = a().default.readFileSync(e, "utf8"), r = (0,
|
|
399
|
-
j().format)(n, $({
|
|
400
|
-
parser: E[t]
|
|
401
|
-
}, U()));
|
|
402
|
-
a().default.writeFileSync(e, r, "utf8");
|
|
403
|
-
}
|
|
404
|
-
})), T("style prettier success!"), u.length >= D) {
|
|
405
|
-
const e = [];
|
|
406
|
-
(0, s().default)(u, 20).forEach((n => {
|
|
407
|
-
e.push(new Promise(((e, r) => {
|
|
408
|
-
A({
|
|
409
|
-
command: "stylelint",
|
|
410
|
-
args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", o, ...n ],
|
|
411
|
-
complete: e,
|
|
412
|
-
close: r,
|
|
413
|
-
exit: !1
|
|
414
|
-
});
|
|
415
|
-
})));
|
|
416
|
-
}));
|
|
417
|
-
const r = process.getMaxListeners(), a = (0, s().default)(e, r ? r / 2 : 2);
|
|
418
|
-
let c = 0;
|
|
419
|
-
const l = () => {
|
|
420
|
-
c < a.length ? Promise.all(a[c]).then((() => {
|
|
421
|
-
c++, l();
|
|
422
|
-
})).catch(i) : n();
|
|
423
|
-
};
|
|
424
|
-
l();
|
|
425
|
-
} else u.length && A({
|
|
426
|
-
command: "stylelint",
|
|
427
|
-
args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", o, ...u ],
|
|
428
|
-
complete: n,
|
|
429
|
-
close: i,
|
|
430
|
-
exit: !1
|
|
431
|
-
});
|
|
432
|
-
} else n();
|
|
433
|
-
})), o = () => {
|
|
434
|
-
const r = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.([t|j]sx?)$/iu.test(e))).map((e => {
|
|
435
|
-
const t = c().default.join(P, e);
|
|
436
|
-
return a().default.existsSync(t) ? t : null;
|
|
437
|
-
})).filter((e => !!e));
|
|
438
|
-
if (r.length) {
|
|
439
|
-
r.forEach((e => {
|
|
440
|
-
if (e && a().default.existsSync(e)) {
|
|
441
|
-
const t = c().default.extname(e).replace(/^\./u, ""), n = a().default.readFileSync(e, "utf8"), r = (0,
|
|
442
|
-
j().format)(n, $({
|
|
443
|
-
parser: E[t]
|
|
444
|
-
}, U()));
|
|
445
|
-
a().default.writeFileSync(e, r, "utf8");
|
|
446
|
-
}
|
|
447
|
-
})), T("script prettier success!");
|
|
448
|
-
const e = ee();
|
|
449
|
-
if (e) {
|
|
450
|
-
const i = r.filter((e => B.every((t => !(0, y().default)(e, t, {
|
|
451
|
-
matchBase: !0
|
|
452
|
-
}))))).filter((e => "string" === typeof n ? !(0, y().default)(e, n, {
|
|
453
|
-
matchBase: !0
|
|
454
|
-
}) : n instanceof RegExp ? !n.test(e) : !Array.isArray(n) || n.every((t => "string" === typeof t ? !(0,
|
|
455
|
-
y().default)(e, t, {
|
|
456
|
-
matchBase: !0
|
|
457
|
-
}) : !(t instanceof RegExp) || !t.test(e)))));
|
|
458
|
-
if (t && (R("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),
|
|
459
|
-
n && R(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${n}\u3002`)), i.length >= D) {
|
|
460
|
-
const n = [];
|
|
461
|
-
(0, s().default)(i, 20).forEach((r => {
|
|
462
|
-
n.push(new Promise((n => {
|
|
463
|
-
A({
|
|
464
|
-
command: "eslint",
|
|
465
|
-
args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...r ],
|
|
466
|
-
complete: n,
|
|
467
|
-
exit: !1
|
|
468
|
-
});
|
|
469
|
-
})));
|
|
470
|
-
}));
|
|
471
|
-
const r = process.getMaxListeners(), o = (0, s().default)(n, r ? r / 2 : 2);
|
|
472
|
-
let a = 0;
|
|
473
|
-
const c = () => {
|
|
474
|
-
a < o.length ? Promise.all(o[a]).then((() => {
|
|
475
|
-
a++, c();
|
|
476
|
-
})) : M();
|
|
477
|
-
};
|
|
478
|
-
c();
|
|
479
|
-
} else i.length && A({
|
|
480
|
-
command: "eslint",
|
|
481
|
-
args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...i ]
|
|
482
|
-
});
|
|
483
|
-
} else R("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6");
|
|
484
|
-
} else M();
|
|
485
|
-
};
|
|
486
|
-
R("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),
|
|
487
|
-
i.then(o);
|
|
488
|
-
}));
|
|
489
|
-
}, ie = ({mProject: e, mPrivateKeyPath: t, mVersion: n, mDesc: r, mRobot: i, mQrcodeFormat: o, mQrcodeOutputDest: s, mPagePath: u, mSearchQuery: l}) => {
|
|
490
|
-
const f = a().default.existsSync(c().default.join(P, ".git")) ? (0, d().execSync)("git log -1 --pretty=format:%H").toString() : "", p = W(), m = p.appid, y = e || c().default.join(P, "dist"), g = t || c().default.join(P, `private.${m}.key`);
|
|
491
|
-
if (a().default.existsSync(y)) {
|
|
492
|
-
if (a().default.existsSync(g)) {
|
|
493
|
-
const e = V(), t = n || e.version || p.version || "1.0.0", a = r || e.description || p.description, c = `version: ${t};${f ? ` commit: ${f};` : ""}${a ? ` description: ${a};` : ""}`;
|
|
494
|
-
f && _(`commit: ${f}`), _(`dist: ${y}`), _(`key: ${g}`), _(`appid: ${m}`), _(`version: ${t}`),
|
|
495
|
-
_(`desc: ${c}`);
|
|
496
|
-
const d = new (S().Project)({
|
|
497
|
-
appid: m,
|
|
498
|
-
type: "miniProgram",
|
|
499
|
-
projectPath: y,
|
|
500
|
-
privateKeyPath: g,
|
|
501
|
-
ignores: [ "node_modules/**/*", "**/*.txt", "**/*.key", "**/*.less", "**/*.sass", "**/*.scss", "**/*.css", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.md" ]
|
|
502
|
-
});
|
|
503
|
-
return {
|
|
504
|
-
appid: m,
|
|
505
|
-
options: {
|
|
506
|
-
project: d,
|
|
507
|
-
version: t,
|
|
508
|
-
desc: c,
|
|
509
|
-
setting: p.setting,
|
|
510
|
-
robot: i,
|
|
511
|
-
qrcodeFormat: o,
|
|
512
|
-
qrcodeOutputDest: s,
|
|
513
|
-
pagePath: u,
|
|
514
|
-
searchQuery: l
|
|
515
|
-
}
|
|
516
|
-
};
|
|
517
|
-
}
|
|
518
|
-
throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`);
|
|
519
|
-
}
|
|
520
|
-
throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`);
|
|
521
|
-
}, oe = () => {
|
|
522
|
-
ne(), process.argv.length > 2 ? l().default.version(k.default.version).usage("[command] [options]").option("--clone", "\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>", "\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs", "\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>", "\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>", '\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>", "\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((e, n) => {
|
|
523
|
-
const s = (0, t().default)(n), l = s[0], f = s.slice(1), d = e.clone, p = e.template, m = e.docs;
|
|
524
|
-
if (l) switch (_(`yolk version: ${k.default.version}`), _(`node version: ${process.version}`),
|
|
525
|
-
_(`platform: ${u().default.platform()}`), _(`memory: ${(0, o().default)(u().default.freemem() / 1024 / 1024)} MB(${(0,
|
|
526
|
-
o().default)(u().default.totalmem() / 1024 / 1024)} MB)`), l) {
|
|
527
|
-
case "init":
|
|
528
|
-
if (T(`yolk ${l} \u5f00\u59cb`), d) if (p) {
|
|
529
|
-
const e = ".yolk", t = c().default.join(P, e);
|
|
530
|
-
a().default.existsSync(t) && (0, b().default)(t, (() => {
|
|
531
|
-
T(`\u7f13\u5b58\u5220\u9664 success! ${t}`);
|
|
532
|
-
})), A({
|
|
533
|
-
command: "git",
|
|
534
|
-
args: [ "clone", "-b", "master", "--depth", "1", p, e ].concat(f)
|
|
535
|
-
}), C(P, t);
|
|
536
|
-
} else Q("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template"); else K(P);
|
|
537
|
-
break;
|
|
538
|
-
|
|
539
|
-
case "start":
|
|
540
|
-
G() ? X() ? A({
|
|
541
|
-
command: "taro",
|
|
542
|
-
args: [ "build", "--type", "tt", "--watch" ].concat(f)
|
|
543
|
-
}) : Z() ? A({
|
|
544
|
-
command: "taro",
|
|
545
|
-
args: [ "build", "--type", "alipay", "--watch" ].concat(f)
|
|
546
|
-
}) : A({
|
|
547
|
-
command: "taro",
|
|
548
|
-
args: [ "build", "--type", "weapp", "--watch" ].concat(f)
|
|
549
|
-
}) : m ? A({
|
|
550
|
-
command: "dumi",
|
|
551
|
-
args: [ "dev" ].concat(f)
|
|
552
|
-
}) : H() ? A({
|
|
553
|
-
command: "icejs",
|
|
554
|
-
args: [ "start", "--config", Y() ].concat(f)
|
|
555
|
-
}) : A({
|
|
556
|
-
command: "umi",
|
|
557
|
-
args: [ "dev" ].concat(f)
|
|
558
|
-
});
|
|
559
|
-
break;
|
|
560
|
-
|
|
561
|
-
case "build":
|
|
562
|
-
G() ? X() ? A({
|
|
563
|
-
command: "taro",
|
|
564
|
-
args: [ "build", "--type", "tt" ].concat(f)
|
|
565
|
-
}) : Z() ? A({
|
|
566
|
-
command: "taro",
|
|
567
|
-
args: [ "build", "--type", "alipay" ].concat(f)
|
|
568
|
-
}) : A({
|
|
569
|
-
command: "taro",
|
|
570
|
-
args: [ "build", "--type", "weapp" ].concat(f)
|
|
571
|
-
}) : m ? A({
|
|
572
|
-
command: "dumi",
|
|
573
|
-
args: [ "build" ].concat(f)
|
|
574
|
-
}) : H() ? A({
|
|
575
|
-
command: "icejs",
|
|
576
|
-
args: [ "build", "--config", Y() ].concat(f)
|
|
577
|
-
}) : A({
|
|
578
|
-
command: "umi",
|
|
579
|
-
args: [ "build" ].concat(f)
|
|
580
|
-
});
|
|
581
|
-
break;
|
|
582
|
-
|
|
583
|
-
case "pre-commit":
|
|
584
|
-
re();
|
|
585
|
-
break;
|
|
586
|
-
|
|
587
|
-
case "test":
|
|
588
|
-
A({
|
|
589
|
-
command: "umi-test",
|
|
590
|
-
args: [ "--no-cache", "--update-snapshot", "--runInBand", "--detectOpenHandles" ].concat(f)
|
|
591
|
-
});
|
|
592
|
-
break;
|
|
593
|
-
|
|
594
|
-
case "miniapp-upload":
|
|
595
|
-
case "miniprogram-upload":
|
|
596
|
-
if (G()) if (X()) ; else if (Z()) ; else {
|
|
597
|
-
const t = ie(e), n = t.appid, o = t.options;
|
|
598
|
-
_(`${n}\u4e0a\u4f20\u5f00\u59cb`), S().upload($($({}, (0, i().default)(o, [ "project", "version", "desc", "setting", "robot" ])), {}, {
|
|
599
|
-
onProgressUpdate: e => {
|
|
600
|
-
if ((0, r().default)(e)) _(`task: ${e}`); else {
|
|
601
|
-
const t = e.status, n = e.message;
|
|
602
|
-
_(`task(${t}): ${n}`);
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
})).then((() => {
|
|
606
|
-
T(`${n}\u4e0a\u4f20\u5b8c\u6210`);
|
|
607
|
-
}));
|
|
608
|
-
}
|
|
609
|
-
break;
|
|
610
|
-
|
|
611
|
-
case "miniapp-preview":
|
|
612
|
-
case "miniprogram-preview":
|
|
613
|
-
if (G()) if (X()) ; else if (Z()) ; else {
|
|
614
|
-
const t = ie(e), n = t.appid, o = t.options;
|
|
615
|
-
_(`${n}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`), S().preview($($({}, (0, i().default)(o, [ "project", "version", "desc", "setting", "robot", "qrcodeFormat", "qrcodeOutputDest", "pagePath", "searchQuery" ])), {}, {
|
|
616
|
-
onProgressUpdate: e => {
|
|
617
|
-
if ((0, r().default)(e)) _(`task: ${e}`); else {
|
|
618
|
-
const t = e.status, n = e.message;
|
|
619
|
-
_(`task(${t}): ${n}`);
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
})).then((() => {
|
|
623
|
-
T(`${n}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`);
|
|
624
|
-
}));
|
|
625
|
-
}
|
|
626
|
-
break;
|
|
627
|
-
|
|
628
|
-
default:
|
|
629
|
-
N();
|
|
630
|
-
}
|
|
631
|
-
})).parse(process.argv) : N();
|
|
632
|
-
};
|
|
633
|
-
|
|
634
|
-
oe();
|
|
2
|
+
"use strict";require("./yolk");
|
package/lib/yolk.d.ts
ADDED
package/lib/yolk.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
"use strict";var e=require("@babel/runtime/helpers/interopRequireDefault");function t(){const n=e(require("@babel/runtime/helpers/toArray"));return t=function(){return n},n}function n(){const t=e(require("@babel/runtime/helpers/defineProperty"));return n=function(){return t},t}function r(){const t=e(require("lodash/isString"));return r=function(){return t},t}function o(){const t=e(require("lodash/pick"));return o=function(){return t},t}function i(){const t=e(require("lodash/floor"));return i=function(){return t},t}function s(){const t=e(require("lodash/chunk"));return s=function(){return t},t}function a(){const e=require("child_process");return a=function(){return e},e}function c(){const t=e(require("commander"));return c=function(){return t},t}function u(){const t=e(require("fs"));return u=function(){return t},t}function l(){const t=e(require("glob"));return l=function(){return t},t}function f(){const t=e(require("inquirer"));return f=function(){return t},t}function d(){const t=e(require("minimatch"));return d=function(){return t},t}function m(){const e=x(require("miniprogram-ci"));return m=function(){return e},e}function p(){const t=e(require("mkdirp"));return p=function(){return t},t}function y(){const t=e(require("mustache"));return y=function(){return t},t}function g(){const t=e(require("ora"));return g=function(){return t},t}function h(){const t=e(require("os"));return h=function(){return t},t}function b(){const t=e(require("path"));return b=function(){return t},t}function j(){const e=require("prettier");return j=function(){return e},e}function S(){const t=e(require("rimraf"));return S=function(){return t},t}var k=e(require("../package.json"));function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function x(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?w(Object(r),!0).forEach((function(t){(0,n().default)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const O=require("staged-git-files"),P=process.cwd(),q="##### CREATED BY YOLK #####",E={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},F="utf-8",D=60,B=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/mock/**","**/yolk/**","**/yolk-web/**","**/yolk-web-ui/**","**/yolk-mobile/**","**/yolk-mobile-ui/**","**/yolk-miniprogram/**","**/yolk-miniprogram-ui/**"],I=(0,g().default)(),Q=e=>e&&I.warn(Buffer.from(e,F).toString()),R=e=>e&&I.fail(Buffer.from(e,F).toString()),T=e=>e&&I.succeed(Buffer.from(e,F).toString()),_=e=>e&&I.info(Buffer.from(e,F).toString()),L=e=>"win32"===process.platform?`${e}.cmd`:e,M=()=>{T("yolk complete!"),process.exit(0)},N=()=>{Q("yolk break!"),process.exit(0)},A=({command:e,args:t,complete:n,close:r,exit:o=!0})=>{const i=(0,a().spawn)(L(e),t||[],{stdio:"inherit"}).on("close",(e=>{e?(r&&r(),R("yolk close!"),process.exit(e)):(n&&n(),o&&M())}));process.on("SIGINT",(()=>{c().default.runningCommand&&c().default.runningCommand.kill("SIGKILL"),i.kill(),N()}))},K=(e,t,n)=>{f().default.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"web template(ice framework)",value:"ice-web"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:b().default.basename(b().default.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:!1,choices:[{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"},{name:"\u4e0d\u521d\u59cb\u5316",value:!1}]}]).then((r=>{const o={projectName:r.projectName,mobile:"umi-mobile"===r.type,dependenciesInstallType:r.dependenciesInstallType,yolkVersion:k.default.version};t||(t=b().default.join(__dirname,`../templates/${r.type}`)),T(`\u590d\u5236\u6a21\u7248 ${b().default.basename(t)}`);const i=l().default.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(i.forEach((n=>{if(!t)return;const r=b().default.join(t,n);if(!u().default.statSync(r).isDirectory())if(n.endsWith(".tpl")){const t=u().default.readFileSync(r,F),i=b().default.join(e,n.replace(/\.tpl$/u,"")),s=y().default.render(t,o);p().default.sync(b().default.dirname(i)),T(`\u521b\u5efa ${b().default.relative(e,i)}`),u().default.writeFileSync(i,s,F)}else{T(`\u521b\u5efa ${n}`);const t=b().default.join(e,n);p().default.sync(b().default.dirname(t)),u().default.copyFileSync(r,t)}})),T("\u590d\u5236\u6a21\u7248 success!"),n&&u().default.existsSync(t)&&(0,S().default)(t,(()=>{T(`\u7f13\u5b58\u5220\u9664 success! ${b().default.basename(t||"")}`)})),r.dependenciesInstallType)switch(T("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),r.dependenciesInstallType){case"npm":A({command:"npm",args:["install"]});break;case"yarn":default:A({command:"yarn",args:["install"]});break}T("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},C=(e,t)=>K(e,t,!0),W=()=>{const e=l().default.sync("*.yolkrc*",{cwd:P,dot:!0});if(!e.length)return{};const t=b().default.join(P,e[0]);if(!u().default.existsSync(t))return{};try{return JSON.parse(u().default.readFileSync(t,F))||{}}catch(n){return R(n.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},J=()=>{const e=b().default.join(P,".prettierrc");if(u().default.existsSync(e))try{return JSON.parse(u().default.readFileSync(e,F))||{}}catch(t){return R(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return{singleQuote:!0,trailingComma:"all",printWidth:80,overrides:[{files:".prettierrc",options:{parser:"json"}}]}},U=()=>{const e=b().default.join(P,"project.config.json");if(!u().default.existsSync(e))return{};try{return JSON.parse(u().default.readFileSync(e,F))||{}}catch(t){return R(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},V=()=>{const e=b().default.join(P,"package.json");if(!u().default.existsSync(e))return{};try{return JSON.parse(u().default.readFileSync(e,F))||{}}catch(t){return R(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},G=()=>u().default.existsSync(b().default.join(P,"project.config.json")),H=()=>u().default.existsSync(b().default.join(P,".icerc.ts"))||u().default.existsSync(b().default.join(P,".icerc.js"))||u().default.existsSync(b().default.join(P,".ice.ts"))||u().default.existsSync(b().default.join(P,".ice.js")),Y=()=>u().default.existsSync(require.resolve("@umijs/max")),z=()=>u().default.existsSync(b().default.join(P,".icerc.ts"))?".icerc.ts":u().default.existsSync(b().default.join(P,".icerc.js"))?".icerc.js":u().default.existsSync(b().default.join(P,".ice.ts"))?".ice.ts":".ice.js",X=()=>{const e=b().default.join(P,"project.config.json");if(u().default.existsSync(e)){const t=require(e);return t.appid}return""},Z=()=>u().default.existsSync(b().default.join(P,"project.tt.json"))&&0===X().indexOf("tt"),ee=()=>0===X().indexOf("20"),te=()=>{const e=W(),t=G()?require.resolve("@baic/eslint-config-yolk-miniprogram"):require.resolve("@baic/eslint-config-yolk"),n=l().default.sync("*.eslintrc*",{cwd:P,dot:!0}),r=n[0];return!1===e.strict&&r&&u().default.existsSync(r)?r:t},ne=()=>{const e=l().default.sync("*.stylelintrc*",{cwd:P,dot:!0}),t=e[0];return t},re=()=>{const e=b().default.join(P,".git/"),t=b().default.join(P,".git/hooks"),n=b().default.join(t,"pre-commit"),r=u().default.existsSync(e),o=u().default.existsSync(n),i=o&&u().default.readFileSync(n,"utf8").includes(q);if(r&&(!o||!i)){p().default.sync(t),u().default.writeFileSync(n,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",q].join(h().default.EOL),"utf8");try{u().default.chmodSync(n,"777")}catch(s){R(`chmod ${n} failed: ${s.message}`)}T("Create pre-commit hook")}},oe=()=>{const e=W(),t=!1!==e.strict,n=e.eslintIgnore,r=e.stylelintIgnore;O().then((e=>{const o=new Promise(((n,o)=>{const i=ne();if(i){const a=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e=>B.every((t=>!(0,d().default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof r?!(0,d().default)(e,r,{matchBase:!0}):r instanceof RegExp?!r.test(e):!Array.isArray(r)||r.every((t=>"string"===typeof t?!(0,d().default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e))))).map((e=>{const t=b().default.join(P,e);return u().default.existsSync(t)?t:null})).filter((e=>!!e));if(a.forEach((e=>{if(e&&u().default.existsSync(e)){const t=b().default.extname(e).replace(/^\./u,""),n=u().default.readFileSync(e,"utf8"),r=(0,j().format)(n,$({parser:E[t]},J()));u().default.writeFileSync(e,r,"utf8")}})),T("style prettier success!"),a.length>=D){const e=[];(0,s().default)(a,20).forEach((n=>{e.push(new Promise(((e,r)=>{A({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",i,...n],complete:e,close:r,exit:!1})})))}));const r=process.getMaxListeners(),c=(0,s().default)(e,r?r/2:2);let u=0;const l=()=>{u<c.length?Promise.all(c[u]).then((()=>{u++,l()})).catch(o):n()};l()}else a.length&&A({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",i,...a],complete:n,close:o,exit:!1})}else n()})),i=()=>{const r=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.([t|j]sx?)$/iu.test(e))).map((e=>{const t=b().default.join(P,e);return u().default.existsSync(t)?t:null})).filter((e=>!!e));if(r.length){r.forEach((e=>{if(e&&u().default.existsSync(e)){const t=b().default.extname(e).replace(/^\./u,""),n=u().default.readFileSync(e,"utf8"),r=(0,j().format)(n,$({parser:E[t]},J()));u().default.writeFileSync(e,r,"utf8")}})),T("script prettier success!");const e=te();if(e){const o=r.filter((e=>B.every((t=>!(0,d().default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof n?!(0,d().default)(e,n,{matchBase:!0}):n instanceof RegExp?!n.test(e):!Array.isArray(n)||n.every((t=>"string"===typeof t?!(0,d().default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(t&&(Q("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),n&&Q(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${n}\u3002`)),o.length>=D){const n=[];(0,s().default)(o,20).forEach((r=>{n.push(new Promise((n=>{A({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...r],complete:n,exit:!1})})))}));const r=process.getMaxListeners(),i=(0,s().default)(n,r?r/2:2);let a=0;const c=()=>{a<i.length?Promise.all(i[a]).then((()=>{a++,c()})):M()};c()}else o.length&&A({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...o]})}else Q("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6")}else M()};Q("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),o.then(i)}))},ie=({mProject:e,mPrivateKeyPath:t,mVersion:n,mDesc:r,mRobot:o,mQrcodeFormat:i,mQrcodeOutputDest:s,mPagePath:c,mSearchQuery:l})=>{const f=u().default.existsSync(b().default.join(P,".git"))?(0,a().execSync)("git log -1 --pretty=format:%H").toString():"",d=U(),p=d.appid,y=e||b().default.join(P,"dist"),g=t||b().default.join(P,`private.${p}.key`);if(u().default.existsSync(y)){if(u().default.existsSync(g)){const e=V(),t=n||e.version||d.version||"1.0.0",a=r||e.description||d.description,u=`version: ${t};${f?` commit: ${f};`:""}${a?` description: ${a};`:""}`;f&&_(`commit: ${f}`),_(`dist: ${y}`),_(`key: ${g}`),_(`appid: ${p}`),_(`version: ${t}`),_(`desc: ${u}`);const h=new(m().Project)({appid:p,type:"miniProgram",projectPath:y,privateKeyPath:g,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:p,options:{project:h,version:t,desc:u,setting:d.setting,robot:o,qrcodeFormat:i,qrcodeOutputDest:s,pagePath:c,searchQuery:l}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`)},se=()=>{re(),process.argv.length>2?c().default.version(k.default.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((e,n)=>{const s=(0,t().default)(n),a=s[0],c=s.slice(1),l=e.clone,f=e.template,d=e.docs;if(a)switch(_(`yolk version: ${k.default.version}`),_(`node version: ${process.version}`),_(`platform: ${h().default.platform()}`),_(`memory: ${(0,i().default)(h().default.freemem()/1024/1024)} MB(${(0,i().default)(h().default.totalmem()/1024/1024)} MB)`),a){case"init":if(T(`yolk ${a} \u5f00\u59cb`),l)if(f){const e=".yolk",t=b().default.join(P,e);u().default.existsSync(t)&&(0,S().default)(t,(()=>{T(`\u7f13\u5b58\u5220\u9664 success! ${t}`)})),A({command:"git",args:["clone","-b","master","--depth","1",f,e].concat(c)}),C(P,t)}else R("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else K(P);break;case"start":G()?Z()?A({command:"taro",args:["build","--type","tt","--watch"].concat(c)}):ee()?A({command:"taro",args:["build","--type","alipay","--watch"].concat(c)}):A({command:"taro",args:["build","--type","weapp","--watch"].concat(c)}):d?A({command:"dumi",args:["dev"].concat(c)}):H()?A({command:"icejs",args:["start","--config",z()].concat(c)}):Y()?A({command:"max",args:["dev"].concat(c)}):A({command:"umi",args:["dev"].concat(c)});break;case"build":G()?Z()?A({command:"taro",args:["build","--type","tt"].concat(c)}):ee()?A({command:"taro",args:["build","--type","alipay"].concat(c)}):A({command:"taro",args:["build","--type","weapp"].concat(c)}):d?A({command:"dumi",args:["build"].concat(c)}):H()?A({command:"icejs",args:["build","--config",z()].concat(c)}):Y()?A({command:"max",args:["build"].concat(c)}):A({command:"umi",args:["build"].concat(c)});break;case"pre-commit":oe();break;case"test":A({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(c)});break;case"miniapp-upload":case"miniprogram-upload":if(G())if(Z());else if(ee());else{const t=ie(e),n=t.appid,i=t.options;_(`${n}\u4e0a\u4f20\u5f00\u59cb`),m().upload($($({},(0,o().default)(i,["project","version","desc","setting","robot"])),{},{onProgressUpdate:e=>{if((0,r().default)(e))_(`task: ${e}`);else{const t=e.status,n=e.message;_(`task(${t}): ${n}`)}}})).then((()=>{T(`${n}\u4e0a\u4f20\u5b8c\u6210`)}))}break;case"miniapp-preview":case"miniprogram-preview":if(G())if(Z());else if(ee());else{const t=ie(e),n=t.appid,i=t.options;_(`${n}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),m().preview($($({},(0,o().default)(i,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"])),{},{onProgressUpdate:e=>{if((0,r().default)(e))_(`task: ${e}`);else{const t=e.status,n=e.message;_(`task(${t}): ${n}`)}}})).then((()=>{T(`${n}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}))}break;default:N()}})).parse(process.argv):N()};se();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baic/yolk-cli",
|
|
3
|
-
"version": "2.1.0-alpha.
|
|
3
|
+
"version": "2.1.0-alpha.9",
|
|
4
4
|
"author": "Baic <303394539@qq.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "0532a2752e94481984232b837ced35978af3d39a"
|
|
44
44
|
}
|