import { defineConfig } from "vite" import react from "@vitejs/plugin-react" import svgr from "vite-plugin-svgr" import { name } from "./package.json" import { copyFileSync, existsSync, mkdirSync } from "fs" import { join } from "path" const genBaseUrl = (mode) => { if (mode !== "development") { if (mode == "test") { return `/${name}-test/` } return `/${name}/` } return "/" } export default defineConfig(({ mode }) => { return { resolve: { alias: { "@": "/src", "@/packages/stt-sdk-core": "/packages/stt-sdk-core/src", }, }, base: genBaseUrl(mode), build: { // cssCodeSplit: false, // target: "es2015", }, server: { host: "0.0.0.0", allowedHosts: true, port: 8080, watch: { // usePolling: true ignored: ["playwright-report", "test-results", "dist", "packages/stt-sdk-core/dist"], }, }, plugins: [ react(), svgr({ svgrOptions: { // icon: true, // typescript: true, }, }), { name: "copy-umd-files", apply: "build", closeBundle() { const umdSource = join(__dirname, "packages/stt-sdk-core/dist/index.umd.js") const umdDest = join(__dirname, "dist/packages/stt-sdk-core/dist/index.umd.js") const demoSource = join(__dirname, "public/umd-demo.html") const demoDest = join(__dirname, "dist/umd-demo.html") if (existsSync(umdSource)) { // 确保目标目录存在 const destDir = join(__dirname, "dist/packages/stt-sdk-core/dist") if (!existsSync(destDir)) { mkdirSync(destDir, { recursive: true }) } // 复制UMD文件 copyFileSync(umdSource, umdDest) console.log("✅ UMD文件已复制到dist目录") } if (existsSync(demoSource)) { // 复制演示HTML文件 copyFileSync(demoSource, demoDest) console.log("✅ UMD演示文件已复制到dist目录") } }, }, ], css: { preprocessorOptions: { scss: { api: "modern", }, }, modules: { // hashPrefix: 'hash', // generateScopedName: "[name]__[local]__[hash:base64:2]", // globalModulePaths: [ // /.*\\.global\\..*/ // ] }, postcss: { plugins: [], }, }, } })