generate-version.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // import fs from 'fs/promises'
  2. // import path from 'path'
  3. // import { fileURLToPath } from 'url'
  4. // import dayjs from 'dayjs'
  5. // import utc from 'dayjs/plugin/utc.js'
  6. // import timezone from 'dayjs/plugin/timezone.js'
  7. const fs = require('fs').promises; // 或 require('fs/promises')
  8. const path = require('path');
  9. // const { fileURLToPath } = require('url');
  10. const dayjs = require('dayjs');
  11. const utc = require('dayjs/plugin/utc.js');
  12. const timezone = require('dayjs/plugin/timezone.js');
  13. dayjs.extend(utc)
  14. dayjs.extend(timezone)
  15. // const __filename = fileURLToPath(import.meta.url)
  16. // const __dirname = path.dirname(__filename)
  17. async function generateVersion() {
  18. try {
  19. const pkgBuffer = await fs.readFile(path.resolve(__dirname, 'package.json'))
  20. const pkg = JSON.parse(pkgBuffer.toString())
  21. const now = dayjs().tz("Asia/Shanghai")
  22. const versionData = {
  23. version: pkg.version,
  24. timestamp: now.format("YYYY-MM-DDTHH:mm:ss.SSS"),
  25. commitHash: process.env.GIT_COMMIT_HASH || 'dev-build'
  26. }
  27. await fs.writeFile(
  28. path.resolve(__dirname, 'public', 'version.json'),
  29. JSON.stringify(versionData, null, 2)
  30. )
  31. console.log('✅ 版本文件已生成:', versionData)
  32. } catch (error) {
  33. console.error('❌ 版本生成失败:', error)
  34. process.exit(1)
  35. }
  36. }
  37. generateVersion()