UNPKG

qvt-cli

Version:

提供多端响应式设计的模板框架

63 lines (52 loc) 1.46 kB
const copydir = require("copy-dir"); const fs = require("fs"); const path = require("path"); const Mustache = require("mustache"); function mkdirGuard(target) { try { fs.mkdirSync(target, { recursive: true }); } catch (e) { mkdirp(target); function mkdirp(dir) { if (fs.existsSync(dir)) { return true; } const dirname = path.dirname(dir); mkdirp(dirname); fs.mkdirSync(dir); } } } function copyDir(form, to, options) { mkdirGuard(to); copydir.sync(form, to, options); } function checkMkdirExists(path) { return fs.existsSync(path); } function copyFile(from, to) { console.log(from) return const buffer = fs.readFileSync(from); const parentPath = path.dirname(to); mkdirGuard(parentPath); fs.writeFileSync(to, buffer); } function readTemplate(path, data = {}) { const str = fs.readFileSync(path, { encoding: "utf8" }); return Mustache.render(str, data); } function copyTemplate(from, to, data = {}) { if (path.extname(from) !== ".tpl") { return copyFile(from, to); } const parentToPath = path.dirname(to); mkdirGuard(parentToPath); fs.writeFileSync(to, readTemplate(from, data)); } exports.checkMkdirExists = checkMkdirExists; exports.mkdirGuard = mkdirGuard; exports.copyDir = copyDir; exports.copyFile = copyFile; exports.readTemplate = readTemplate; exports.copyTemplate = copyTemplate;