UNPKG

v3-json-canvas-cli

Version:

这是一个帮助你快速创建vue的可视化拖拽项目的CLI

53 lines (48 loc) 1.41 kB
const path = require("path"); const fs = require("fs"); const ejs = require("ejs") const program = require('commander') // 编译ejs模板和数据,返回字符串 const compile = (template, data) => { const templatePath = path.resolve(__dirname, `../templates/${template}`) return new Promise((resolve, reject) => { ejs.renderFile(templatePath, {data}, {}, (err, res) => { if(err) { console.log(err); reject(err) return } resolve(res) }) }) } // 写入文件 const writeToFile = (path, content) => { if(fs.existsSync(path) && !program.opts().force) { return console.error('文件已经存在!无法再次创建。强制执行操作请运行:v3-json-canvas <command> <name> -f'); } return fs.promises.writeFile(path, content) } // 创建文件夹(多层嵌套也可以创建) const createDeepFolder = (dest) => { return new Promise((resolve, reject) => { try { const arr = dest.split("/") const resList = arr.map((item, i) => { return path.resolve(arr.slice(0, i+1).join('/')) }) resList.forEach(item => { const info = fs.existsSync(item) if(info === false) fs.mkdirSync(item) }) resolve() } catch (error) { reject(error) } }) } module.exports = { compile, writeToFile, createDeepFolder }