l2en-cli
Version:
cli,项目脚手架,快速搭建项目框架
87 lines • 3.25 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var inquirer = require("inquirer");
var log_1 = require("../utils/log");
var git_download_js_1 = require("./git-download.js");
var contants_1 = require("../utils/contants");
var writePkg_1 = require("./writePkg");
var path = require('path');
var fs = require('fs-extra');
var init = function () {
try {
inquirer
.prompt([
{
type: 'list',
name: 'type',
message: '框架类型',
default: 0,
choices: [
{ value: contants_1.frame_type.react, name: 'React' },
{ value: contants_1.frame_type.vue, name: 'Vue [todo]', disabled: true },
]
},
{
type: 'input',
name: 'name',
message: '项目名',
},
{
type: 'input',
name: 'author',
message: '开发者',
},
{
type: 'input',
name: 'description',
message: '项目描述',
},
{
type: 'input',
name: 'keywords',
message: '关键词',
},
])
.then(function (answers) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var targetPath, error_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
targetPath = path.resolve(process.cwd(), answers.name);
if (fs.pathExistsSync(targetPath)) {
log_1.default.error(answers.name + "\u9879\u76EE\u5DF2\u5B58\u5728\uFF0C\u8BF7\u66F4\u6362\u9879\u76EE\u540D\uFF01");
return [2];
}
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4, git_download_js_1.default(targetPath, answers.name, answers.type)];
case 2:
_a.sent();
log_1.default.info('success!');
return [3, 4];
case 3:
error_1 = _a.sent();
log_1.default.warn('warn download:', error_1);
return [3, 4];
case 4:
writePkg_1.default(targetPath, answers.name, {
name: answers.name,
description: answers.description,
keywords: answers.keywords,
author: answers.author
});
return [2];
}
});
});
});
}
catch (err) {
console.log('init err==>>', err);
}
};
exports.default = init;
//# sourceMappingURL=init.js.map