#!/usr/bin/env node 'use strict' const path = require('path') const program = require('commander') const slush = require.resolve('slush/bin/slush') const exec = require('../util/exec') const logger = require('../util/logger') const isInstalled = require('../util/is-installed') const npm = require('../util/npm') const config = require('../util/config') program .option('-r --registry ', '指定镜像') .parse(process.argv) const option = program.args[0] || config.get('template') if (!option) { logger.fatal('请指定脚手架') } const name = 'xdc-' + option const template = 'slush-' + name /** * download template * @param {string} template template name */ const installTemplate = template => { logger.log(`downloading '${template}'`) npm.install(template, program.registry) logger.success('脚手架安装成功\n') } /** * run slush * @param {string} name slush template name */ const generator = function (name) { logger.log('generator project') exec(slush, [ name ], { stdio: 'inherit', errorMessage: 'slush runtime error' }) } if (!isInstalled('generator-package-xdc')) { logger.log('下载脚手架相关依赖') npm.install('generator-package-xdc', program.registry) } if (!isInstalled(path.join(template.split('@')[0], 'package.json'))) { installTemplate(template) } generator(name.split('@')[0])