@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 CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- export {};
2
+ import './yolk';
package/es/index.js CHANGED
@@ -1,498 +1,2 @@
1
1
  #! /usr/bin/env node
2
- import e from "@babel/runtime/helpers/toArray";
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
@@ -0,0 +1,2 @@
1
+ #! /usr/bin/env node
2
+ export {};
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
- export {};
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
@@ -0,0 +1,2 @@
1
+ #! /usr/bin/env node
2
+ export {};
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.6",
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": "bd5c443bd3f43d9a9fa7fc37eadb5891dec8e04c"
43
+ "gitHead": "0532a2752e94481984232b837ced35978af3d39a"
44
44
  }