qb-clio
Version:
qb-cli 脚手架,仅有vue模板
42 lines (40 loc) • 1.46 kB
JavaScript
const fse = require('fs-extra')
const ora = require('ora')
const path = require('path')
const downloadRepo = require('download-git-repo')
const symbols = require('log-symbols');
const chalk = require('chalk')
const pkg = require('../../package.json');
module.exports = function ({ type, ...params }) {
const spinner = ora(`${type}模板下载中...`).start();
return new Promise((resolve, reject) => {
downloadRepo(
pkg.template[type],
params.name,
{ clone: true },
err => {
if (err) {
spinner.fail();
console.log(symbols.error, chalk.red('模板下载失败!'));
reject(err)
} else {
spinner.succeed();
const pathPkg = path.resolve(params.name, './package.json');
const targetPkg = fse.readJsonSync(pathPkg)
Object.assign(targetPkg, params)
fse.writeJsonSync(
pathPkg,
targetPkg,
{
spaces: '\t',
EOL: '\n',
}
)
console.log(symbols.success, chalk.green(`模板下载成功!`));
spinner.stop();
resolve('成功')
}
}
);
})
}