} catch (e) {
errorLog(e.message)
}
} else {
errorLog(`请重新输入组件名称:`)
return
}
// 这里生成自定义组件说明文档
const docsDirectory = resolve('../examples/docs')
const docsMdName = resolve(docsDirectory, `${inputName}.md`)
try {
log(`生成 component 文档 ${docsMdName}`)
await generateFile(docsMdName, mdDocs(`${inputName} 组件`))
successLog('生成 component 文档成功')
} catch (e) {
errorLog(e.message)
}
process.stdin.emit('end')
})
process.stdin.on('end', () => {
log('exit')
process.exit()
})
function dotExistDirectoryCreate (directory) {
return new Promise((resolve) => {
mkdirs(directory, function () {
resolve(true)
})
})
}
// 递归创建目录
function mkdirs (directory, callback) {
var exists = fs.existsSync(directory)
if (exists) {
callback()
} else {
mkdirs(path.dirname(directory), function () {
fs.mkdirSync(directory)
callback()
})
}
}delete-comp.js
// 删除自定义组件脚本
const chalk = require('chalk')
const path = require('path')
const fs = require('fs-extra')
const uppercamelize = require('uppercamelcase')
const resolve = (...file) => path.resolve(__dirname, ...file)
const log = message => console.log(chalk.green(`${message}`))
const successLog = message => console.log(chalk.blue(`${message}`))
const errorLog = error => console.log(chalk.red(`${error}`))
log('请输入要删除的组件名称,形如 demo 或者 demo-test')
process.stdin.on('data', async chunk => {
let inputName = String(chunk).trim().toString()
inputName = uppercamelize(inputName)
const componentDirectory = resolve('../packages', inputName)
const hasComponentDirectory = fs.existsSync(componentDirectory)
const docsDirectory = resolve('../examples/docs')
const docsMdName = resolve(docsDirectory, `${inputName}.md`)
if (inputName) {
if (hasComponentDirectory) {
log(`删除 component 目录 ${componentDirectory}`)
await removePromise(componentDirectory)
successLog(`已删除 ${inputName} 组件目录`)
log(`删除 component 文档 ${docsMdName}`)
fs.unlink(docsMdName)
successLog(`已删除 ${inputName} 组件说明文档`)
} else {
errorLog(`${inputName}组件目录不存在`)
return
}
} else {
errorLog(`请重新输入组件名称:`)
return
}
process.stdin.emit('end')
})
process.stdin.on('end', () => {
log('exit')
process.exit()
})
function removePromise (dir) {
return new Promise(function (resolve, reject) {
// 先读文件夹
fs.stat(dir, function (_err, stat) {
if (stat.isDirectory()) {
fs.readdir(dir, function (_err, files) {
files = files.map(file => path.join(dir, file)) // a/b a/m










