UNPKG

dws-cli-ui

Version:

dws-cli dws系列:包括大屏、移动端、设计器项目等待

68 lines (59 loc) 1.75 kB
const fs = require("fs") const path = require("path") const ejs = require("ejs") const logInfo = require("./log") const ejsCompile = (templatePath, data = {}, options = {}) => { return new Promise((resolve, reject) => { ejs.renderFile(templatePath, { data }, options, (err, str) => { if (err) { reject(err) return } resolve(str) }) }) } const writeFile = (path, content) => { if (fs.existsSync(path)) { logInfo.error("当前文件已经存在") return } return fs.promises.writeFile(path, content) } const mkdirSync = dirname => { if (fs.existsSync(dirname)) { return true } else { // 不存在,判断父亲文件夹是否存在? if (mkdirSync(path.dirname(dirname))) { // 存在父亲文件,就直接新建该文件 fs.mkdirSync(dirname) return true } } } /** * 创建EJS文件 * @param {*} name 名称 * @param {*} dest 创建的文件路径 * @param {*} template 相对于utils下面的模板路径,因为createEJS函数在utils下面 * @param {*} filename 文件名称 */ const createEJS = async (name, dest, template, filename) => { // 路径获取 // console.log("__dirname : " + __dirname) // console.log("resolve : " + path.resolve("./")) // console.log("cwd : " + process.cwd()) // 1.获取模块引擎的路径 const templatePath = path.resolve(__dirname, template) const result = await ejsCompile(templatePath, { name, filename: name.toLowerCase() }) // 2.写入文件中 // 判断文件不存在,那么就创建文件 mkdirSync(dest) const targetPath = path.resolve(dest, filename) writeFile(targetPath, result) } module.exports = { ejsCompile, writeFile, mkdirSync, createEJS }