2023-07-08 15:23:24 +08:00

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;
}
};