UNPKG

@exabytellc/utils

Version:

EB react utils to make everything a little easier!

60 lines (51 loc) 2.01 kB
import fs from "fs"; import path from "path"; export default function assetsFilesPlugin(dirname) { let config; return { name: "vite-assets-files-plugin", async configResolved(_config) { config = _config; }, buildStart() { const assetDir = path.resolve(config.root, dirname); if (fs.existsSync(assetDir)) { const buildDir = path.resolve(config.root, config.publicDir); if (!fs.existsSync(buildDir)) { fs.mkdirSync(buildDir, { recursive: true }); } fs.readdirSync(assetDir).forEach((file) => { const sourceFile = path.resolve(assetDir, file); const destinationFile = path.resolve(buildDir, file); fs.copyFileSync(sourceFile, destinationFile); console.log(`Copied ${file} to ${buildDir} directory`); }); } else { console.warn(`Asset directory "${assetDir}" does not exist.`); } }, writeBundle() { const assetDir = path.resolve(config.root, dirname); if (fs.existsSync(assetDir)) { const buildDir = path.resolve(config.root, config.build.outDir); if (!fs.existsSync(buildDir)) { fs.mkdirSync(buildDir, { recursive: true }); } const publicDir = path.resolve(config.root, config.publicDir); if (!fs.existsSync(publicDir)) { fs.mkdirSync(publicDir, { recursive: true }); } fs.readdirSync(assetDir).forEach((file) => { const sourceFile = path.resolve(assetDir, file); const destinationFile = path.resolve(buildDir, file); const destinationFile2 = path.resolve(publicDir, file); fs.copyFileSync(sourceFile, destinationFile); fs.copyFileSync(sourceFile, destinationFile2); console.log(`Copied ${file} to ${buildDir} directory`); }); } else { console.warn(`Asset directory "${assetDir}" does not exist.`); } }, }; }