UNPKG

2.44 kBPlain TextView Raw
1#!/usr/bin/env node
2require("babel-register");
3const fs = require('fs-extra');
4const inquirer = require('inquirer');
5const ejs = require('ejs');
6const getGitUser = require('../src/utils/git-user');
7const program = require('commander')
8const colors = require('colors');
9const tools = require('../src/utils/tools');
10let argvs = program.parse(process.argv).args;
11let projectName = argvs[0];
12
13if (!projectName) {
14 inquirer.prompt({
15 type: 'confirm',
16 name: 'ok',
17 message: 'Generate project in current directory?'
18 }).then(function (answers) {
19 if (answers.ok) {
20 projectName = tools.PROJECT_PATH.substr(tools.PROJECT_PATH.lastIndexOf('/') + 1, tools.PROJECT_PATH.length);
21 run();
22 }
23 });
24} else {
25 run();
26}
27function run() {
28 inquirer.prompt([
29 {
30 type: 'input',
31 name: 'name',
32 message: 'Project name',
33 default: projectName
34 },
35 {
36 type: 'input',
37 name: 'description',
38 message: 'Project description',
39 default: 'A vivo Vue.js project'
40 },
41 {
42 type: 'input',
43 name: 'author',
44 message: 'Author',
45 default: getGitUser()
46 }
47 ]).then(function (answers) {
48 var userProjectPath = argvs[0] ? tools.PROJECT_PATH + '/' + argvs[0] : tools.PROJECT_PATH;
49 fs.copySync(tools.CLIENT_PATH + "/project/zhump/vue", userProjectPath)
50
51 function renderEjs(path, params) {
52 fs.readFile(path, function (err, data) {
53 if (err) {
54 return console.error(err);
55 }
56 var str = data.toString();
57 fs.outputFile(path, ejs.render(str, params)).catch(err => {
58 console.error(err)
59 })
60 });
61 }
62
63 renderEjs(userProjectPath + '/package.json', answers)
64 renderEjs(userProjectPath + '/index.html', answers)
65 renderEjs(userProjectPath + '/src/app.less', answers)
66
67 console.log(colors.magenta(' \n wow ! create project success ! run order ...'));
68
69 if (argvs[0]) {
70 console.log(`
71 cd ${projectName}
72 `)
73 }
74 console.log(`
75 npm i
76 npm run dev
77`)
78 console.log(colors.magenta(' \n create your page !you can run ! run order ...'));
79
80 console.log(`
81 vivo new page home
82`)
83
84
85 });
86}
\No newline at end of file