clean.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. This script removes ignored directories
  3. By default it only removes all the "node_modules" directories.
  4. Using it with "all" removes the "dist", "distApp", and "builds" dirs too.
  5. To run this script, use `npm run clean` or `npm run clean:all`.
  6. */
  7. let test;
  8. try {
  9. test = require("fs-extra")
  10. } catch (err) {
  11. console.error("This script won't work unless you've installed node_modules.")
  12. process.exit(1)
  13. }
  14. const fs = test;
  15. const glob = require("fast-glob")
  16. const {resolve,join} = require("path");
  17. const projectDir = resolve(__dirname, "..")
  18. var args = process.argv.slice(2);
  19. let dirsToRemove;
  20. const node_modules = glob.sync("+(**/node_modules|node_modules)", {absolute:true, onlyDirectories:true, cwd:projectDir})
  21. const build_dirs = [
  22. join(projectDir, "dist"),
  23. join(projectDir, "distApp"),
  24. join(projectDir, "builds"),
  25. join(projectDir, "LightcordApi", "js"),
  26. join(projectDir, "LightcordApi", "dist"),
  27. join(projectDir, "DiscordJS", "js"),
  28. join(projectDir, "DiscordJS", "dist"),
  29. join(projectDir, "BetterDiscordApp", "js"),
  30. join(projectDir, "BetterDiscordApp", "dist"),
  31. ]
  32. // regular clean means removing only node_modules
  33. dirsToRemove = node_modules;
  34. // clean all means removing all dirs.
  35. if (args[0] === "--all"){
  36. dirsToRemove = dirsToRemove.concat(build_dirs)
  37. }
  38. dirsToRemove.forEach((dir)=>{
  39. fs.remove(dir);
  40. })