compile.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const spawn = require("cross-spawn")
  2. const { mkdirSync, existsSync } = require("fs")
  3. const { join, resolve } = require("path")
  4. const PROJECT_DIR = resolve(__dirname, "..");
  5. /** Main Project */
  6. spawnSync("tsc", PROJECT_DIR)
  7. /** BetterDiscord */
  8. if (!existsSync(join(PROJECT_DIR, "BetterDiscordApp", "dist"))){
  9. mkdirSync(join(PROJECT_DIR, "BetterDiscordApp", "dist"))
  10. }
  11. spawnSync("npm run build", join(PROJECT_DIR, "BetterDiscordApp"))
  12. spawnSync("npm run build-prod", join(PROJECT_DIR, "BetterDiscordApp"))
  13. spawnSync("npm run minify-css", join(PROJECT_DIR, "BetterDiscordApp"))
  14. /** DiscordJS */
  15. spawnSync("npm run build", join(PROJECT_DIR, "DiscordJS"))
  16. /** LightcordApi */
  17. spawnSync("npm run build", join(PROJECT_DIR, "LightcordApi"))
  18. spawnSync("npm run build-prod", join(PROJECT_DIR, "LightcordApi"))
  19. spawnSync("tsc", join(PROJECT_DIR, "LightcordApi"))
  20. var exitedWithErrorProcessList = [];
  21. function spawnSync(cmdString, cwd){
  22. let args = cmdString.split(" ")
  23. let command = args.shift()
  24. return spawn(command, args, {
  25. cwd: cwd || process.cwd(),
  26. env: process.env,
  27. stdio: "inherit"
  28. }).on("error", (err) => {
  29. const DIRSTRING = cwd || process.env.PWD
  30. console.error("Error while running " + cmdString + " in target directory " + DIRSTRING)
  31. console.error(err)
  32. exitedWithErrorProcessList.push({cmd: cmdString, cwd: DIRSTRING, err: err})
  33. })
  34. }
  35. process.on("beforeExit", () => {
  36. if (exitedWithErrorProcessList.length != 0){
  37. console.error("Commands exited with errors:\n")
  38. exitedWithErrorProcessList.forEach((val)=>{
  39. console.error("\tcommand:\t\t" + val.cmd + "\n\ttarget directory:\t" + val.cwd + "\n")
  40. console.error(val.err)
  41. });
  42. }
  43. console.log(`Exiting compilation`)
  44. })