UNPKG

express-mvc-cli

Version:

express mvc 框架

76 lines (74 loc) 2.5 kB
#!/usr/bin/env node var program = require('commander'); const download = require('git-clone'); const handlebars = require('handlebars'); const inquirer = require('inquirer'); const fs = require('fs'); const templates = { 'web': { url: 'https://gitee.com/liu-xu-xu/template.git', description: '前端模板' }, 'server': { url: 'https://gitee.com/liu-xu-xu/erp_pro_server.git', description: '后端模板' } } program .version('1.0.0') program .command('create <project>') .description('初始化项目') .action(function (project) { inquirer.prompt([ { type: 'input', name: 'name', message: `请输入项目名称(${project})` }, { type: 'input', name: 'description', message: '请输入项目描述' }, { type: 'input', name: 'author', message: '请输入项目作者' } ]).then((result) => { download('https://gitee.com/liu-xu-xu/express-template.git', project, { clone: true }, (err) => { if (err) return; if (result.name == '' || !result.name) result.name = project; const packageContent = fs.readFileSync(`${project}/package.json`, 'utf-8'); const packageResult = handlebars.compile(packageContent)(result); fs.writeFileSync(`${project}/package.json`, packageResult); function delDir(p) { var list = fs.readdirSync(p) list.forEach((v, i) => { var url = p + '/' + v var stats = fs.statSync(url) if (stats.isFile()) { fs.unlinkSync(url) } else { arguments.callee(url) } }) fs.rmdirSync(p) } delDir(`${project}/.git`); console.log('项目创建成功') }) }) }); // program // .command('list') // .description('查看所有模板') // .action(() => { // for (let key in templates) { // console.log( // `\n ${key} ${templates[key].description}`, // ) // } // }) program.parse(process.argv);