vite.config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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: "/", // History 模式下必须用绝对路径,避免深层路由把 JS 解析成相对 assets 路径
  27. // 反向代理
  28. server: {
  29. port: 8050,
  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://prpms.eiacloud.com/", // 本地测试地址
  38. rewrite: (path) => path.replace(/^\/dev-api/, ""),
  39. },
  40. },
  41. },
  42. css: {
  43. preprocessorOptions: {
  44. less: {
  45. additionalData: `@import "${path.resolve(
  46. __dirname,
  47. "src/assets/styles/commonStyle.less"
  48. )}";`,
  49. },
  50. },
  51. },
  52. build: {
  53. // 配置输出文件名
  54. rollupOptions: {
  55. output: {
  56. // JS 文件添加时间戳
  57. entryFileNames: `assets/js/[name].${version}.js`,
  58. chunkFileNames: `assets/js/[name].${version}.js`,
  59. assetFileNames: `assets/css/[name].${version}.[ext]`, // CSS 文件添加时间戳
  60. },
  61. },
  62. },
  63. });