create-cttq
Version:
CTTQ大前端脚手架项目
23 lines (21 loc) • 785 B
JavaScript
const globby = require('globby');
const fs = require('fs');
const path = require('path');
const { isBinaryFileSync } = require('isbinaryfile');
module.exports = async (rootPath, patterns) => {
const files = {};
const _files = await globby(patterns, { cwd: rootPath, dot: true, onlyFiles: false, markDirectories: true });
for (const rawPath of _files) {
const sourcePath = path.resolve(rootPath, rawPath);
let content = null;
if (fs.lstatSync(sourcePath).isDirectory()) {
content = null;
} else if (isBinaryFileSync(sourcePath)) {
content = fs.readFileSync(sourcePath);
} else {
content = fs.readFileSync(sourcePath, "utf-8");
}
files[rawPath] = content;
}
return files;
}