vite.config.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { defineConfig } from 'vite'
  2. import react from '@vitejs/plugin-react'
  3. import { cp, mkdir } from 'node:fs/promises'
  4. import { resolve } from 'node:path'
  5. function includeCaseTimeline() {
  6. return {
  7. name: 'include-case-timeline',
  8. apply: 'build',
  9. async closeBundle() {
  10. const projectRoot = process.cwd()
  11. const workspaceRoot = resolve(projectRoot, '..')
  12. const caseTarget = resolve(projectRoot, 'dist/slow-alpha/saigon-leverage')
  13. const brandTarget = resolve(projectRoot, 'dist/slow-alpha/brand')
  14. await mkdir(caseTarget, { recursive: true })
  15. await mkdir(brandTarget, { recursive: true })
  16. await cp(resolve(workspaceRoot, 'case-timeline'), caseTarget, { recursive: true })
  17. for (const logo of [
  18. 'logo-chinese.svg',
  19. 'logo-chinese-light.svg',
  20. 'logo-mark.svg',
  21. 'logo-mark-light.svg',
  22. 'logo-chinese-slogan.svg',
  23. 'logo-chinese-slogan-light.svg',
  24. 'logo-chinese-slogan-dark.svg',
  25. 'logo-chinese-slogan-light-bg.svg',
  26. ]) {
  27. await cp(resolve(workspaceRoot, 'brand', logo), resolve(brandTarget, logo))
  28. }
  29. },
  30. }
  31. }
  32. // https://vite.dev/config/
  33. export default defineConfig({
  34. plugins: [react(), includeCaseTimeline()],
  35. })