vite-plugin-file-rename
Version:
A Vite plugin to rename files in the output directory.
41 lines (40 loc) • 1.45 kB
JavaScript
const defaultConfig = {
fileMap: {},
keepOriginal: false,
useRegex: false,
};
export function fileRename({ keepOriginal = false, fileMap = {}, useRegex = false } = defaultConfig) {
let config;
return {
name: "vite:filerename",
enforce: "post",
configResolved(resolvedConfig) {
config = resolvedConfig;
},
generateBundle(_, bundle) {
for (const [name, asset] of Object.entries(bundle)) {
for (const [key, value] of Object.entries(fileMap)) {
let shouldRename = false;
if (useRegex) {
const pattern = new RegExp(key);
shouldRename = pattern.test(name);
}
else {
shouldRename = name.includes(key);
}
if (shouldRename) {
const newName = useRegex ? name.replace(new RegExp(key), value) : name.replace(key, value);
config.logger.info(`Renaming ${name} to ${newName}`);
bundle[newName] = {
...asset,
fileName: newName,
};
if (!keepOriginal) {
delete bundle[name];
}
}
}
}
},
};
}