daofu-gov-pc/plop-templates/mock/prompt.js

44 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-01-23 09:11:49 +08:00
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
}
}