vite.config.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { defineConfig } from "vite"
  2. import react from "@vitejs/plugin-react"
  3. import svgr from "vite-plugin-svgr"
  4. import { name } from "./package.json"
  5. import { copyFileSync, existsSync, mkdirSync } from "fs"
  6. import { join } from "path"
  7. const genBaseUrl = (mode) => {
  8. if (mode !== "development") {
  9. if (mode == "test") {
  10. return `/${name}-test/`
  11. }
  12. return `/${name}/`
  13. }
  14. return "/"
  15. }
  16. export default defineConfig(({ mode }) => {
  17. return {
  18. resolve: {
  19. alias: {
  20. "@": "/src",
  21. "@/packages/stt-sdk-core": "/packages/stt-sdk-core/src",
  22. },
  23. },
  24. base: genBaseUrl(mode),
  25. build: {
  26. // cssCodeSplit: false,
  27. // target: "es2015",
  28. },
  29. server: {
  30. host: "0.0.0.0",
  31. allowedHosts: true,
  32. port: 8080,
  33. watch: {
  34. // usePolling: true
  35. ignored: ["playwright-report", "test-results", "dist", "packages/stt-sdk-core/dist"],
  36. },
  37. },
  38. plugins: [
  39. react(),
  40. svgr({
  41. svgrOptions: {
  42. // icon: true,
  43. // typescript: true,
  44. },
  45. }),
  46. {
  47. name: "copy-umd-files",
  48. apply: "build",
  49. closeBundle() {
  50. const umdSource = join(__dirname, "packages/stt-sdk-core/dist/index.umd.js")
  51. const umdDest = join(__dirname, "dist/packages/stt-sdk-core/dist/index.umd.js")
  52. const demoSource = join(__dirname, "public/umd-demo.html")
  53. const demoDest = join(__dirname, "dist/umd-demo.html")
  54. if (existsSync(umdSource)) {
  55. // 确保目标目录存在
  56. const destDir = join(__dirname, "dist/packages/stt-sdk-core/dist")
  57. if (!existsSync(destDir)) {
  58. mkdirSync(destDir, { recursive: true })
  59. }
  60. // 复制UMD文件
  61. copyFileSync(umdSource, umdDest)
  62. console.log("✅ UMD文件已复制到dist目录")
  63. }
  64. if (existsSync(demoSource)) {
  65. // 复制演示HTML文件
  66. copyFileSync(demoSource, demoDest)
  67. console.log("✅ UMD演示文件已复制到dist目录")
  68. }
  69. },
  70. },
  71. ],
  72. css: {
  73. preprocessorOptions: {
  74. scss: {
  75. api: "modern",
  76. },
  77. },
  78. modules: {
  79. // hashPrefix: 'hash',
  80. // generateScopedName: "[name]__[local]__[hash:base64:2]",
  81. // globalModulePaths: [
  82. // /.*\\.global\\..*/
  83. // ]
  84. },
  85. postcss: {
  86. plugins: [],
  87. },
  88. },
  89. }
  90. })