yhd-cli
Version:
create a vue or react project fastly
36 lines (35 loc) • 1.24 kB
JavaScript
;
let path = require('path');
let exec = require('./lib/execPromise');
let write = require('./lib/filePromise').writeFile;
let read = require('./lib/filePromise').readFile;
let params = require('./lib/resolveParams')(process.argv.slice(2));
let projectName = params.projectName;
let projectType = params.projectType;
let cfg = require('./config');
projectType = projectType.replace(/^-+/,'');
/**
* 重置项目模板
* @param projectName
*/
const reset = (projectName)=> {
let filePath = path.join(destinationPath,projectName);
let templates = ['package.json','index.html','h5cfg.txt'];
const replaceTemplate = (filePath,projectName)=> {
read(filePath)
.then(data=> data.toString().replace(/\$\{\s*name\s*\}/g,projectName))
.then(data=> write(filePath,data))
};
templates.forEach((template)=> replaceTemplate(`${ filePath }/${ template }`,projectName));
};
/**
* 创建项目
* @param projectName
* @param projectType
*/
const create = (projectName, projectType)=> {
exec(`git clone ${ cfg['project'][projectType] } ${ projectName }`)
.then(stdout=> exec(`rm -rf ${ path.join(destinationPath, projectName) }/.git`))
.then(stdout=> reset(projectName));
};
create(projectName,projectType);