1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var messages_1 = require("./messages");
|
5 | var constants_1 = require("./constants");
|
6 | var getInstallDepsCmd_1 = tslib_1.__importDefault(require("./getInstallDepsCmd"));
|
7 | var paths_1 = require("../config/paths");
|
8 | var getInstallCmd_1 = tslib_1.__importDefault(require("./getInstallCmd"));
|
9 | var execa = require("execa");
|
10 | function getDevPendencies(options) {
|
11 | return constants_1.devDependencies.concat((options.react ? constants_1.devDependenciesForReact : []), (options.docz ? constants_1.devDependenciesForDocz : []), (options.doczGithubPages ? constants_1.devDependenciesForGhpages : []), (options.monorepo ? constants_1.monorepoDevDependencies : []));
|
12 | }
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | function execInstallDeps(projectName, deps, isDev, monorepo) {
|
21 | if (isDev === void 0) { isDev = false; }
|
22 | if (monorepo === void 0) { monorepo = false; }
|
23 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
24 | var cmd, args;
|
25 | return tslib_1.__generator(this, function (_a) {
|
26 | switch (_a.label) {
|
27 | case 0:
|
28 | cmd = getInstallCmd_1.default();
|
29 | args = [
|
30 | cmd === 'npm' ? 'i' : 'add'
|
31 | ].concat(deps, [
|
32 | isDev ? '--dev' : '',
|
33 | cmd === 'npm' ? '--save' : '',
|
34 | monorepo ? '-W' : '',
|
35 | ]).filter(Boolean);
|
36 | return [4 , execa(cmd, args, {
|
37 | cwd: paths_1.resolveRoot(projectName),
|
38 | })];
|
39 | case 1:
|
40 | _a.sent();
|
41 | return [2 ];
|
42 | }
|
43 | });
|
44 | });
|
45 | }
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | function installDeps(spinner, options) {
|
52 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
53 | var projectName, devDeps, error_1;
|
54 | return tslib_1.__generator(this, function (_a) {
|
55 | switch (_a.label) {
|
56 | case 0:
|
57 | projectName = options.projectName;
|
58 | devDeps = getDevPendencies(options);
|
59 | spinner.start(messages_1.dependenciesMessage(constants_1.dependencies, devDeps));
|
60 | _a.label = 1;
|
61 | case 1:
|
62 | _a.trys.push([1, 4, , 5]);
|
63 | return [4 , execInstallDeps(projectName, constants_1.dependencies, false, true)];
|
64 | case 2:
|
65 | _a.sent();
|
66 | return [4 , execInstallDeps(projectName, devDeps, true, true)];
|
67 | case 3:
|
68 | _a.sent();
|
69 | spinner.succeed('安装依赖包');
|
70 | messages_1.successMessage(getInstallCmd_1.default(), projectName);
|
71 | return [3 , 5];
|
72 | case 4:
|
73 | error_1 = _a.sent();
|
74 | spinner.fail("\u5B89\u88C5\u4F9D\u8D56\u5931\u8D25");
|
75 | messages_1.failureMessage([
|
76 | getInstallDepsCmd_1.default(constants_1.dependencies),
|
77 | getInstallDepsCmd_1.default(devDeps, true),
|
78 | ]);
|
79 | process.exit(1);
|
80 | return [3 , 5];
|
81 | case 5: return [2 ];
|
82 | }
|
83 | });
|
84 | });
|
85 | }
|
86 | exports.default = installDeps;
|
87 |
|
\ | No newline at end of file |