generate-version.js 1.0 KB

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