prebuild.mjs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { writeFileSync } from "fs";
  2. import { execSync } from "child_process";
  3. import moment from "moment";
  4. import packageJson from "./package.json" assert { type: "json" };
  5. console.log("> prebuild");
  6. console.log(process.argv);
  7. if (process.argv.length < 3) {
  8. console.log(
  9. "命令格式:\nnode --experimental-json-modules prebuild.mjs [mode]"
  10. );
  11. process.exit(1);
  12. }
  13. const mode = process.argv[2];
  14. const validModes = ["production", "staging", "test", "dev"];
  15. if (!validModes.includes(mode)) {
  16. console.log(`mode: ${mode} 不合法,合法的mode为 `, validModes);
  17. process.exit(1);
  18. }
  19. const localEnv = ".env." + mode + ".local";
  20. console.log("> prebuild create " + localEnv);
  21. // const packageJson = require("./package.json");
  22. const buildDate = moment().format("YYYY-MM-DD HH:mm:ss");
  23. console.log(" 构建日期为 " + buildDate);
  24. // eslint-disable-next-line @typescript-eslint/no-unsafe-call
  25. const revision = execSync("git rev-parse HEAD").toString().trim().slice(0, 7);
  26. console.log(" 当前的git版本为 " + revision);
  27. // eslint-disable-next-line @typescript-eslint/no-unsafe-call
  28. writeFileSync(
  29. localEnv,
  30. `VITE_FE_VERSION=${packageJson.version}
  31. VITE_BUILD_DATE=${buildDate}
  32. VITE_GIT_REPO_VERSION=${revision}
  33. `
  34. );
  35. console.log();