44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
const path = require('path')
|
|
const fs = require('fs')
|
|
|
|
function getFolder(path) {
|
|
let components = []
|
|
const files = fs.readdirSync(path)
|
|
files.forEach(function(item) {
|
|
let stat = fs.lstatSync(path + '/' + item)
|
|
if (stat.isDirectory() === true && item != 'components') {
|
|
components.push(path + '/' + item)
|
|
components.push.apply(components, getFolder(path + '/' + item))
|
|
}
|
|
})
|
|
return components
|
|
}
|
|
|
|
module.exports = {
|
|
description: '创建标准模块 Mock',
|
|
prompts: [
|
|
{
|
|
type: 'list',
|
|
name: 'path',
|
|
message: '请选择模块目录',
|
|
choices: getFolder('src/views')
|
|
}
|
|
],
|
|
actions: data => {
|
|
let pathArr = path.relative('src/views', data.path).split('\\')
|
|
let moduleName = pathArr.pop()
|
|
let relativePath = pathArr.join('/')
|
|
const actions = []
|
|
actions.push({
|
|
type: 'add',
|
|
path: pathArr.length == 0 ? 'src/mock/{{moduleName}}.js' : `src/mock/${pathArr.join('.')}.{{moduleName}}.js`,
|
|
templateFile: 'plop-templates/mock/mock.hbs',
|
|
data: {
|
|
relativePath,
|
|
moduleName
|
|
}
|
|
})
|
|
return actions
|
|
}
|
|
}
|