// 根据传入的模板名称 下载模板 functiondownload(template) { const spinner = ora('正在下载模版...') spinner.start() if (exists(tmp)) { rm(tmp) } downloadGitRepo(template, tmp, function (err) { spinner.stop() if (err) { logger.error(chalk.red(err)) } console.log() logger.success('模版下载成功!') generateProject({ name: name, src: tmp, dest: to }) }) }
functiongenerateProject(conf) { generate(conf, function (err, files) { if (err) { logger.error('生成模版失败! ' + err) } logger.success('初始化完成!') }) } // 生成模板
functiongenerate(conf, done) {
var opts = getOptions(conf.name, conf.src) var metalsmith = Metalsmith(conf.src + '/template')
/** * metalsmith.metadata() 全局插件流的一块元数据, * Get the global metadata. This is useful for plugins that want to set global-level metadata that can be applied to all files. */ var data = Object.assign(metalsmith.metadata(), { destDirName: conf.name, inPlace: conf.dest === process.cwd(), noEscape: true })