#!/usr/bin/env node require("babel-register"); const fs = require('fs-extra'); const inquirer = require('inquirer'); const ejs = require('ejs'); const getGitUser = require('../src/utils/git-user'); const program = require('commander') const colors = require('colors'); const tools = require('../src/utils/tools'); let argvs = program.parse(process.argv).args; let projectName = argvs[0]; if (!projectName) { inquirer.prompt({ type: 'confirm', name: 'ok', message: 'Generate project in current directory?' }).then(function (answers) { if (answers.ok) { projectName = tools.PROJECT_PATH.substr(tools.PROJECT_PATH.lastIndexOf('/') + 1, tools.PROJECT_PATH.length); run(); } }); } else { run(); } function run() { inquirer.prompt([ { type: 'input', name: 'name', message: 'Project name', default: projectName }, { type: 'input', name: 'description', message: 'Project description', default: 'A vivo Vue.js project' }, { type: 'input', name: 'author', message: 'Author', default: getGitUser() } ]).then(function (answers) { var userProjectPath = argvs[0] ? tools.PROJECT_PATH + '/' + argvs[0] : tools.PROJECT_PATH; fs.copySync(tools.CLIENT_PATH + "/project/zhump/vue", userProjectPath) function renderEjs(path, params) { fs.readFile(path, function (err, data) { if (err) { return console.error(err); } var str = data.toString(); fs.outputFile(path, ejs.render(str, params)).catch(err => { console.error(err) }) }); } renderEjs(userProjectPath + '/package.json', answers) renderEjs(userProjectPath + '/index.html', answers) renderEjs(userProjectPath + '/src/app.less', answers) console.log(colors.magenta(' \n wow ! create project success ! run order ...')); if (argvs[0]) { console.log(` cd ${projectName} `) } console.log(` npm i npm run dev `) console.log(colors.magenta(' \n create your page !you can run ! run order ...')); console.log(` vivo new page home `) }); }