le-cli
Version:
108 lines • 3.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var inquirer = require("inquirer");
var log_1 = require("../lib/log");
var init_1 = require("../lib/console/init");
var program = require("commander");
var handleRequest_1 = require("../lib/handleRequest");
var chalk_1 = require("chalk");
var ora = require("ora");
var pkg = require('../../package.json');
var spinner = ora('Downloading template...');
program
.usage('--start')
.version(pkg.version)
.option('-s, --start', '开启cli模板选择')
.parse(process.argv);
program.on('--help', function () {
log_1.default.info(' 示例(Examples):');
log_1.default.info();
log_1.default.info(' tpm-cli --start/-s ');
});
var defaultConfig = [
{
type: 'input',
name: 'dirPath',
message: "\u8BF7\u8F93\u5165\u60A8\u7684\u521D\u59CB\u5316\u9879\u76EE\u8DEF\u5F84, \u4E0D\u586B\u5199\u9ED8\u8BA4\u7565\u8FC7\u5E76\u53D6\u5F53\u524D\u8DEF\u5F84\u4E3A\u9ED8\u8BA4\u521D\u59CB\u5316\u9879\u76EE\u8DEF\u5F84:",
},
{
type: 'checkbox',
message: '请选择创建项目类型',
name: 'select',
choices: [
new inquirer.Separator(' = 前台程序 = '),
{
name: '多页jquery程序+handlebars模板引擎',
value: 'jquery-multipage'
},
{
name: '基于TypeScript+webpack多页打包的前台程序',
value: 'TypeScript-multipage'
},
{
name: 'react+redux+antd+jsonServerMockjs',
value: 'react-redux'
},
{
name: 'react+redux+antd+next服务端渲染',
value: 'next-react-redux'
},
{
name: '基于TypeScript+react项目',
value: 'tsx-app'
},
{
name: '小程序 - 基于tina的小程序框架',
value: 'mini-program'
},
new inquirer.Separator(' = node 后台程序 ='),
{
name: 'koa程序+MySql连接数据库',
value: 'koa-sql'
},
{
name: 'koa程序+基于TypeScript+MySql',
value: 'koa-typescript'
}
],
validate: function (answer) {
if (answer.length !== 1) {
return '只能选择一个初始化项目模板';
}
return true;
}
}
];
var initFunction = function (config) {
if (config === void 0) { config = defaultConfig; }
inquirer.prompt(config)
.then(function (data) {
log_1.default.info('项目选择成功,正在开始给您初始化项目.......');
var dirPath = data.dirPath, select = data.select;
var template = select[0];
init_1.default({
template: template,
dirPath: dirPath,
});
});
};
if (program.start) {
log_1.default.info('Get template information form remote ......');
spinner.start();
handleRequest_1.default()
.then(function (res) {
spinner.succeed(chalk_1.default.green('Get template information success'));
var choicesList = handleRequest_1.handleResponseSource(res);
initFunction(handleRequest_1.configHandler(choicesList));
})
.catch(function (err) {
spinner.warn('Get template fail');
log_1.default.info('Start local template config......');
initFunction();
});
}
else {
program.help();
}
//# sourceMappingURL=le.js.map