mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoManager
synced 2025-06-07 01:58:18 +00:00
60 lines
1.4 KiB
JavaScript
Executable File
60 lines
1.4 KiB
JavaScript
Executable File
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
function getFolder(path) {
|
|
const components = [];
|
|
const files = fs.readdirSync(path);
|
|
files.forEach(item => {
|
|
const stat = fs.lstatSync(`${path}/${item}`);
|
|
if (stat.isDirectory() === true && item !== 'components') {
|
|
components.push(`${path}/${item}`);
|
|
components.push(...getFolder(`${path}/${item}`));
|
|
}
|
|
});
|
|
return components;
|
|
}
|
|
|
|
module.exports = {
|
|
description: '创建页面',
|
|
prompts: [
|
|
{
|
|
type: 'list',
|
|
name: 'path',
|
|
message: '请选择页面创建目录',
|
|
choices: getFolder('src/pages')
|
|
},
|
|
{
|
|
type: 'input',
|
|
name: 'name',
|
|
message: '请输入文件名',
|
|
validate: v => {
|
|
if (!v || v.trim === '') {
|
|
return '文件名不能为空';
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'confirm',
|
|
name: 'isFilesystem',
|
|
message: '是否为基于文件系统的路由页面',
|
|
default: false
|
|
}
|
|
],
|
|
actions: data => {
|
|
const relativePath = path.relative('src/pages', data.path);
|
|
const actions = [
|
|
{
|
|
type: 'add',
|
|
path: `${data.path}/{{dotCase name}}.vue`,
|
|
templateFile: 'plop-templates/page/index.hbs',
|
|
data: {
|
|
componentName: `${relativePath} ${data.name}`
|
|
}
|
|
}
|
|
];
|
|
return actions;
|
|
}
|
|
};
|