Files
vue-cli/packages/@vue/cli/lib/create.js
Evan You c19eafce9e wip
2017-12-25 16:54:49 -05:00

40 lines
1.0 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const program = require('commander')
const Creator = require('./Creator')
const debug = require('debug')('create')
const Generator = require('./Generator')
const { warn, error } = require('./util/log')
const resolveInstalledGenerators = require('./util/resolveInstalledGenerators')
program
.usage('<app-name>')
.parse(process.argv)
const projectName = program.args[0]
if (!projectName) {
warn(`\n Please provide an app name.`)
program.outputHelp()
process.exit(1)
}
const builtInGenerators = fs
.readdirSync(path.resolve(__dirname, './generators'))
.map(id => new Generator(id, `./generators/${id}`))
debug(builtInGenerators)
const installedGenerators = resolveInstalledGenerators().map(id => {
return new Generator(id)
})
const targetDir = path.resolve(process.cwd(), projectName)
const creator = new Creator(projectName, builtInGenerators.concat(installedGenerators))
creator
.create(targetDir)
.then(() => {
// TODO: log instructions
})
.catch(error)