vite.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { defineConfig } from "vite";
  2. import vue from "@vitejs/plugin-vue";
  3. import path from "path";
  4. import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
  5. const resolve = (dir) => path.join(__dirname, dir);
  6. // 获取时间戳
  7. const version = new Date().getTime();
  8. // https://vitejs.dev/config/
  9. export default defineConfig({
  10. plugins: [
  11. vue(),
  12. createSvgIconsPlugin({
  13. // 指定 SVG 图标目录(绝对路径)
  14. iconDirs: [path.resolve(process.cwd(), "src/assets/icons")],
  15. // 指定 symbolId 格式
  16. symbolId: "icon-[dir]-[name]",
  17. // 自定义插入位置(可选)
  18. inject: "body-last",
  19. }),
  20. ],
  21. resolve: {
  22. alias: {
  23. "@": resolve("src"),
  24. },
  25. },
  26. base: "./", // 基础路径
  27. // 反向代理
  28. server: {
  29. port: 8060,
  30. host: "0.0.0.0",
  31. open: false, // 服务启动时是否自动打开浏览器true
  32. hmr: true, // 开启热更新
  33. cors: true, // 允许跨域
  34. proxy: {
  35. "/dev-api": {
  36. changeOrigin: true, //是否允许跨域
  37. // target: "https://ai.eiacloud.com/chat-api/", // 线上测试地址
  38. // target: "http://192.168.0.3:8021", // 本地测试地址
  39. target: "https://cktest.eiacloud.com/chat-api/", // 本地测试地址
  40. rewrite: (path) => path.replace(/^\/dev-api/, ""),
  41. },
  42. },
  43. },
  44. css: {
  45. preprocessorOptions: {
  46. less: {
  47. additionalData: `@import "${path.resolve(
  48. __dirname,
  49. "src/assets/styles/commonStyle.less"
  50. )}";`,
  51. },
  52. },
  53. },
  54. build: {
  55. // 配置输出文件名
  56. rollupOptions: {
  57. output: {
  58. // JS 文件添加时间戳
  59. entryFileNames: `assets/js/[name].${version}.js`,
  60. chunkFileNames: `assets/js/[name].${version}.js`,
  61. assetFileNames: `assets/css/[name].${version}.[ext]`, // CSS 文件添加时间戳
  62. },
  63. },
  64. },
  65. });