generate-ext-com
Version:
cli 工具
102 lines (77 loc) • 3.5 kB
JavaScript
const chalk = require('chalk');
const clear = require('clear');
const figlet = require('figlet');
const path = require('path');
var fs = require('fs');
const files = require('./lib/files');
const view = require('./lib/template/view');
const ViewModel = require('./lib/template/ViewModel');
const controller = require('./lib/template/controller');
const style = require('./lib/template/style');
const store = require('./lib/template/store');
const model = require('./lib/template/model');
clear();
console.log(
chalk.yellow(
figlet.textSync('ExtGen', { horizontalLayout: 'full' })
)
);
const inquirer = require('./lib/inquirer');
const run = async () => {
const params = await inquirer.askParams();
// 生成模板数据
let viewData = view.generateView(params);
let ViewModelData =ViewModel.generateViewModel(params);
let controllerData = controller.generateController(params);
let styleData = style.generateScss(params);
let storeData = store.generateStore(params);
let modelData = model.generateModel(params);
console.log(process.argv);
// 写文件
fs.writeFileSync(`${params.fileName}.js`, viewData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}.js 成功! `);
});
fs.writeFileSync(`${params.fileName}ViewModel.js`, ViewModelData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}ViewModel.js 成功! `);
});
fs.writeFileSync(`${params.fileName}Controller.js`, controllerData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}Controller.js 成功! `);
});
fs.writeFileSync(`${params.fileName}.scss`, styleData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}.scss 成功! `);
});
fs.writeFileSync(`${params.fileName}Store.js`, storeData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}Store.js 成功! `);
});
fs.writeFileSync(`${params.fileName}Model.js`, modelData, function (err) {
if (err) throw err;
console.log(`创建${params.fileName}Model.js 成功! `);
});
// 创建目录
var targetDir = __dirname + '/' + params.fileName
fs.mkdirSync(targetDir)
// 复制文件
fs.copyFileSync(`${__dirname}/${params.fileName}.js`, `${__dirname}/${params.fileName}/${params.fileName}.js`);
fs.copyFileSync(`${__dirname}/${params.fileName}ViewModel.js`, `${__dirname}/${params.fileName}/${params.fileName}ViewModel.js`);
fs.copyFileSync(`${__dirname}/${params.fileName}Controller.js`, `${__dirname}/${params.fileName}/${params.fileName}Controller.js`);
fs.copyFileSync(`${__dirname}/${params.fileName}.scss`, `${__dirname}/${params.fileName}/${params.fileName}.scss`);
fs.copyFileSync(`${__dirname}/${params.fileName}Store.js`, `${__dirname}/${params.fileName}/${params.fileName}Store.js`);
fs.copyFileSync(`${__dirname}/${params.fileName}Model.js`, `${__dirname}/${params.fileName}/${params.fileName}Model.js`);
// 删除原文件
var callback = function(err) {
if (err) throw err
}
fs.unlink(`${__dirname}/${params.fileName}.js`,callback);
fs.unlink(`${__dirname}/${params.fileName}ViewModel.js`,callback);
fs.unlink(`${__dirname}/${params.fileName}Controller.js`,callback);
fs.unlink(`${__dirname}/${params.fileName}.scss`,callback);
fs.unlink(`${__dirname}/${params.fileName}Store.js`,callback);
fs.unlink(`${__dirname}/${params.fileName}Model.js`,callback);
}
run();