fe-real-cli
Version:
FE脚手架CLI工具
75 lines (58 loc) • 2.83 kB
JavaScript
;
var _logSymbols = require('log-symbols');
var _logSymbols2 = _interopRequireDefault(_logSymbols);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _ora = require('ora');
var _ora2 = _interopRequireDefault(_ora);
var _util = require('./util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let create = async ProjectName => {
// 项目名不能为空
if (ProjectName === undefined) {
console.log(_logSymbols2.default.error, _chalk2.default.red('创建项目怎能木有名字,请输入项目名'));
} else {
// 如果文件名不存在则继续执行,否则退出
(0, _util.notExistFold)(ProjectName).then(() => {
// 用户询问交互
(0, _util.prompt)().then(answer => {
// 目前只建了一个vue的模板,所以只能先跳过react🌶
// if (answer.frame === 'react') {
// console.log(symbol.warning, chalk.yellow('react模板还在路上,莫急莫急~'));
// process.exit(1);
// }
/**
* 根据用户输入的配置信息下载模版&更新模版配置
* 下载模版比较耗时,这里通过ora插入下载loading, 提示用户正在下载模版
*/
let loading = (0, _ora2.default)('模板下载中...');
loading.start('模板下载中...');
let Api = '';
switch (answer.frame) {
case 'vue':
Api = 'direct:https://github.com/william-xue/vue-mobile-pro.git';
break;
case 'react':
Api = 'direct:https://github.com/william-xue/react-pc-pro.git';
break;
case 'egg':
Api = 'direct:https://github.com/william-xue/egg-scaffold.git';
default:
break;
}
(0, _util.downloadTemplate)(ProjectName, Api).then(() => {
loading.succeed('模板下载完成,欢迎提出宝贵意见');
// 下载完成后,根据用户输入更新配置文件
const fileName = `${ProjectName}/package.json`;
answer.name = ProjectName;
(0, _util.updateJsonFile)(fileName, answer).then(() => {
console.log(_logSymbols2.default.success, _chalk2.default.green('配置文件更新完的。'));
});
}, () => {
loading.fail('模板下载失败');
});
});
});
}
};
module.exports = create;