build-version.js 996 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env node
  2. const fs = require("fs");
  3. const path = require("path");
  4. const versionFile = path.join("build", "version.json");
  5. const indexFile = path.join("build", "index.html");
  6. const zero = (digit) => `0${digit}`.slice(-2);
  7. const versionDate = (date) => {
  8. const date_ = `${date.getFullYear()}-${zero(date.getMonth() + 1)}-${zero(
  9. date.getDate(),
  10. )}`;
  11. const time = `${zero(date.getHours())}-${zero(date.getMinutes())}-${zero(
  12. date.getSeconds(),
  13. )}`;
  14. return `${date_}-${time}`;
  15. };
  16. const now = new Date();
  17. const data = JSON.stringify(
  18. {
  19. version: versionDate(now),
  20. },
  21. undefined,
  22. 2,
  23. );
  24. fs.writeFileSync(versionFile, data);
  25. // https://stackoverflow.com/a/14181136/8418
  26. fs.readFile(indexFile, "utf8", (error, data) => {
  27. if (error) {
  28. return console.error(error);
  29. }
  30. const result = data.replace(/{version}/g, versionDate(now));
  31. fs.writeFile(indexFile, result, "utf8", (error) => {
  32. if (error) {
  33. return console.error(error);
  34. }
  35. });
  36. });