UNPKG

generate-ext-com

Version:

cli 工具

102 lines (77 loc) 3.5 kB
#!/usr/bin/env node 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();