@exabytellc/utils
Version:
EB react utils to make everything a little easier!
36 lines (34 loc) • 1.02 kB
JavaScript
import path from "path";
import fs from "fs";
export default function buildFilePlugin(
name,
{ filename, dirname = "", content = () => { } } = {}
) {
let config;
return {
name: name,
async configResolved(_config) {
config = _config;
},
async writeBundle() {
try {
// Define output directory and file paths
const outputDir = path.resolve(
config.root,
config.build.outDir,
dirname
);
const outputFile = path.resolve(outputDir, filename);
// Create directory if it doesn't exist
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
// Write content to the file
fs.writeFileSync(outputFile, await content(config));
console.log(`File "${filename}" has been generated at ${outputDir}`);
} catch (error) {
console.error(`Failed to generate the file "${filename}":`, error);
}
},
};
}