UNPKG

1.28 kBJavaScriptView Raw
1'use strict'
2const exec = require('child_process').exec
3const co = require('co')
4const prompt = require('co-prompt')
5const config = require('../templates')
6const chalk = require('chalk')
7
8module.exports = () => {
9 co(function *() {
10 // 处理用户输入
11 let tplName = yield prompt('Template name: ')
12 let projectName = yield prompt('Project name: ')
13 let gitUrl
14 let branch
15
16 if (!config.tpl[tplName]) {
17 console.log(chalk.red('\n × Template does not exit!'))
18 process.exit()
19 }
20 gitUrl = config.tpl[tplName].url
21 branch = config.tpl[tplName].branch
22
23 // git命令,远程拉取项目并自定义项目名
24 let cmdStr = `git clone ${gitUrl} ${projectName} && cd ${projectName} && git checkout ${branch}`
25
26 // console.log(chalk.white('\n Start generating...'))
27 console.log(chalk.white('\n 开始生成相关文件...'))
28
29 exec(cmdStr, (error, stdout, stderr) => {
30 if (error) {
31 console.log(error)
32 process.exit()
33 }
34 // console.log(chalk.green('\n √ Generation completed!'))
35 console.log(chalk.green('\n √ 目录已初始化成功~~~'))
36 console.log(`\n cd ${projectName} && npm install||yarn \n`)
37 process.exit()
38 })
39 })
40}