UNPKG

le-cli

Version:
108 lines 3.64 kB
#!/usr/bin/env node "use strict"; 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