h5-clis
Version:
A simple CLI for scaffolding kinds of h5 projects.
55 lines (48 loc) • 1.36 kB
JavaScript
/**
* @Desc: generate project
* @Date: 2018-06-13
*/
const path = require('path');
const fse = require('fs-extra');
const ora = require('ora');
const download = require('./download');
const imp = {};
/**
* get project path
* @param {String} projectName
* @return {String}
*/
imp.getDstPath = (projectName) => {
if (!projectName) {
projectName = 'demo-project';
}
projectName += '-project';
return path.join(process.cwd(), projectName);
};
/**
* generate project
* @param {String} projectName
*/
imp.generate = async (projectName) => {
const spinner = ora('generate project start');
try {
spinner.start('download ...');
await download.download(projectName);
spinner.succeed('download template success');
// src path
let srcPath = path.resolve(__dirname, '../template')
let dstPath = imp.getDstPath(projectName);
// copy folder
await fse.copy(srcPath, dstPath);
spinner.succeed('generate project success');
spinner.info(`project path: ${dstPath}`)
} catch (err) {
spinner.fail('generate project failed');
if (err.statusCode === 404) {
spinner.warn(`h5 template not found, please check the support template in README.md`)
} else {
spinner.warn(`download error, ${err.message}`);
}
}
};
module.exports = imp;