UNPKG

yhd-cli

Version:

create a vue or react project fastly

36 lines (35 loc) 1.24 kB
'use strict'; 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);