You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
725 B

  1. const path = require("path");
  2. const fs = require("fs");
  3. const glob = require("fast-glob");
  4. module.exports = {
  5. name: "build_cleanup",
  6. setup(build) {
  7. build.onEnd((result) => {
  8. if (result.errors.length) return;
  9. clean_dist_files(Object.keys(result.metafile.outputs));
  10. });
  11. },
  12. };
  13. function clean_dist_files(new_files) {
  14. new_files.forEach((file) => {
  15. if (file.endsWith(".map")) return;
  16. const pattern = file.split(".").slice(0, -2).join(".") + "*";
  17. glob.sync(pattern).forEach((file_to_delete) => {
  18. if (file_to_delete.startsWith(file)) return;
  19. fs.unlink(path.resolve(file_to_delete), (err) => {
  20. if (!err) return;
  21. console.error(`Error deleting ${file.split(path.sep).pop()}`);
  22. });
  23. });
  24. });
  25. }