fluidd

Форк
0
/
vite.config.inject-version.ts 
52 строки · 1.2 Кб
1
import child_process from 'child_process'
2
import fs from 'fs'
3
import path from 'path'
4
import { version } from './package.json'
5

6
import type { Plugin } from 'vite'
7

8
const writeVersionFile = async () => {
9
  const versionFile = await fs.promises.open(path.resolve(__dirname, 'dist/.version'), 'w')
10

11
  await versionFile.writeFile(`v${version}`)
12

13
  await versionFile.close()
14
}
15

16
const writeReleaseInfoFile = async () => {
17
  const releaseInfoFile = await fs.promises.open(path.resolve(__dirname, 'dist/release_info.json'), 'w')
18

19
  await releaseInfoFile.writeFile(JSON.stringify({
20
    project_name: 'fluidd',
21
    project_owner: 'fluidd-core',
22
    version: `v${version}`
23
  }))
24

25
  await releaseInfoFile.close()
26
}
27

28
const vitePluginInjectVersion = (): Plugin => {
29
  return {
30
    name: 'version',
31
    config: () => {
32
      const git_hash = child_process
33
        .execSync('git rev-parse --short HEAD')
34
        .toString()
35

36
      return {
37
        define: {
38
          'import.meta.env.VERSION': JSON.stringify(version),
39
          'import.meta.env.HASH': JSON.stringify(git_hash)
40
        }
41
      }
42
    },
43
    writeBundle: () => {
44
      setImmediate(async () => {
45
        await writeVersionFile()
46
        await writeReleaseInfoFile()
47
      })
48
    }
49
  }
50
}
51

52
export default vitePluginInjectVersion
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.