vite.config.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import * as path from "path";
  2. const resolve = (dir) => path.resolve(__dirname, dir);
  3. import { fileURLToPath, URL } from 'node:url'
  4. import { defineConfig } from 'vite'
  5. import vue from '@vitejs/plugin-vue'
  6. import AutoImport from 'unplugin-auto-import/vite'
  7. import Components from 'unplugin-vue-components/vite'
  8. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  9. import postcsspxtoviewport8plugin from 'postcss-px-to-viewport-8-plugin'
  10. export default defineConfig({
  11. server:{
  12. cors: true,
  13. proxy: {
  14. // 代理所有 /api 的请求,该求情将被代理到 target 中
  15. '/api': {
  16. // 代理请求之后的请求地址(你的真实接口地址)
  17. target: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/',
  18. //target: 'http://localhost:9250/',
  19. secure: false,
  20. ws: true,
  21. // 跨域
  22. changeOrigin: true,
  23. rewrite: (path) => path.replace(/^\/api/, '')
  24. },
  25. '/addressapi': {
  26. // 代理请求之后的请求地址(你的真实接口地址)
  27. target: 'https://cimweb.zjw.sh.cegn.cn:2008/',
  28. //target: 'http://localhost:9250/',
  29. secure: false,
  30. ws: true,
  31. // 跨域
  32. changeOrigin: true,
  33. rewrite: (path) => path.replace(/^\/addressapi/, '')
  34. }
  35. },
  36. },
  37. css:{
  38. postcss:{
  39. plugins:[
  40. postcsspxtoviewport8plugin({
  41. unitToConvert: 'px', // 要转化的单位
  42. viewportWidth: 1920, // UI设计稿的宽度
  43. unitPrecision: 6, // 转换后的精度,即小数点位数
  44. propList: [
  45. 'width',
  46. 'left',
  47. 'right',
  48. 'font-size',
  49. 'margin-left',
  50. 'margin-right',
  51. 'text-indent',
  52. 'padding-left',
  53. 'padding-right',
  54. 'padding',
  55. ], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
  56. viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
  57. fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
  58. selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名
  59. minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
  60. mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
  61. replace: true, // 是否转换后直接更换属性值
  62. exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
  63. // exclude: [],
  64. include: [
  65. /\/src\/pages\/amap\/factor-monitor.vue/,
  66. ],
  67. landscape: false, // 是否处理横屏情况
  68. }),
  69. // 处理属性转vh的情况
  70. postcsspxtoviewport8plugin({
  71. unitToConvert: 'px', // 要转化的单位
  72. viewportWidth: 1080, // UI设计稿的宽度
  73. unitPrecision: 6, // 转换后的精度,即小数点位数
  74. propList: [
  75. 'height',
  76. 'top',
  77. 'bottom',
  78. 'margin-top',
  79. 'margin-bottom',
  80. 'padding-top',
  81. 'padding-bottom',
  82. 'line-height',
  83. ], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
  84. viewportUnit: 'vh', // 指定需要转换成的视窗单位,默认vw
  85. fontViewportUnit: 'vh', // 指定字体需要转换成的视窗单位,默认vw
  86. selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名
  87. minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
  88. mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
  89. replace: true, // 是否转换后直接更换属性值
  90. exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
  91. // exclude: [],
  92. include: [
  93. /\/src\/pages\/amap\/factor-monitor.vue/,
  94. ],
  95. landscape: false, // 是否处理横屏情况
  96. })
  97. ]
  98. }
  99. },
  100. plugins: [vue(), AutoImport({
  101. resolvers: [ElementPlusResolver()],
  102. }),
  103. Components({
  104. resolvers: [ElementPlusResolver()],
  105. }),],
  106. base:'./',
  107. resolve: {
  108. alias: {
  109. '@': fileURLToPath(new URL('./src', import.meta.url))
  110. }
  111. }
  112. })