UNPKG

3.73 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var messages_1 = require("./messages");
5var constants_1 = require("./constants");
6var getInstallDepsCmd_1 = tslib_1.__importDefault(require("./getInstallDepsCmd"));
7var paths_1 = require("../config/paths");
8var getInstallCmd_1 = tslib_1.__importDefault(require("./getInstallCmd"));
9var execa = require("execa");
10function 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 * @param projectName 项目名称
17 * @param deps 依赖
18 * @param isDev 是否是开发依赖
19 */
20function 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 /*yield*/, execa(cmd, args, {
37 cwd: paths_1.resolveRoot(projectName),
38 })];
39 case 1:
40 _a.sent();
41 return [2 /*return*/];
42 }
43 });
44 });
45}
46/**
47 * 安装依赖
48 *
49 * @param {CreateOptions} options
50 */
51function 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 /*yield*/, execInstallDeps(projectName, constants_1.dependencies, false, true)];
64 case 2:
65 _a.sent();
66 return [4 /*yield*/, 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 /*break*/, 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 /*break*/, 5];
81 case 5: return [2 /*return*/];
82 }
83 });
84 });
85}
86exports.default = installDeps;
87//# sourceMappingURL=installDeps.js.map
\No newline at end of file