| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #! /usr/bin/env node
- // Node Cli 应用入口文件必须要有这样的文件头
- // 如果是 Linux 或者 macos 系统还需要修改此文件的读写权限为 755
- // 具体是通过 chmod 755 cli.js 实现修改
- // console.log('working');
- // 脚手架的工作过程
- // 1.通过命令交互询问用户问题
- // 2.根据用户回答的结果生成文件
- // 在终端 执行 generate-code
- const inquirer = require('inquirer');
- const fs = require('fs');
- const path = require('path');
- const ejs = require('ejs');
- // 读取json
- const list = JSON.parse(fs.readFileSync('./generate-code/pc_menu_企业风管.json'));
- // 目标目录
- // const destDir = process.cwd();
- const destDir = path.join(process.cwd(), 'src');
- function action(type, name, path) {
- function getEnum(arr, callback) {
- arr.forEach((el) => {
- const { code, title, children } = el;
- if (el.type === type) {
- // 按钮类型
- fs.promises.readFile(path).then((res) => {
- console.log(code);
- if (!name.includes(code)) {
- name += `
- ${code} = '${code}', // ${title}
- `;
- callback();
- }
- getEnum(children, callback);
- });
- } else {
- getEnum(children, callback);
- }
- });
- }
- getEnum(list, () => {
- const temp =
- name +
- `
- }`;
- fs.writeFileSync(path, temp, { flag: 'w+' }, (err) => {
- // !err && console.log('写入文件成功!');
- });
- });
- }
- /*** ===================== 生成弹窗名枚举 ==================== ****/
- const enumPath = path.join(destDir, '/common/constants/modalNameEnum.ts');
- const name = `export enum ModalEnum {
- notice = 'notice', // 消息
- logout = 'logout', // 退出登录
- commomOrder = 'commom-order', // 下单通用界面
- detail = 'detail', // 详情`;
- action(2, name, enumPath)
- /*** ===================== 生成单据组件名枚举 ==================== ****/
- const enumOrderPath = path.join(destDir, '/common/constants/enumOrderComponents.ts');
- const orderName = `// 组件名枚举
- export enum enumOrderComponents {`;
- action(4, orderName, enumOrderPath)
- /*** ===================== 生成路由名枚举 ==================== ****/
- const enumRouterPath = path.join(destDir, '/common/constants/enumRouterName.ts');
- const routerName = `// 路由名 枚举
- export enum EnumRouterName {`;
- action(1, routerName, enumRouterPath)
|