import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import postcssPxToViewport from 'postcss-px-to-viewport';
export default defineConfig({
  plugins: [vue()],
  server: {
    port: '8098',
    host: '0.0.0.0',
    proxy: {
      '/api': {
        //apiTest是自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来
        target: 'http://10.1.161.183:7878/', // 需要代理的域名
        secure: false,
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '') //重写匹配的字段,如果不需要放在请求路径上,可以重写为""
      },
      '/cityGIsApi': {
        //apiTest是自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来
        // target: 'http://10.1.161.113:18080/', // 需要代理的域名
        // target: 'http://58.34.215.19:9082/', // 需要代理的域名
        target: 'http://10.1.161.53:9082/',
        secure: false,
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/cityGIsApi/, '') //重写匹配的字段,如果不需要放在请求路径上,可以重写为""
      },
      '/vmap': {
        //apiTest是自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来
        // target: 'http://10.1.161.113:18080/', // 需要代理的域名
        // target: 'http://58.34.215.19:9082', // 需要代理的域名
        target: 'http://10.1.161.53:9082/',
        secure: false,
        changeOrigin: true
      }
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
    postcss: {
      plugins: [
        postcssPxToViewport({
          viewportWidth: 1080, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
          viewportHeight: 1080, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
          unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
          viewportUnit: 'vh', // 指定需要转换成的视窗单位,建议使用vw
          fontViewportUnit: 'vh',
          selectorBlackList: [], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
          minPixelValue: 2, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
          mediaQuery: true, // 允媒体查许在询中转换`px`
          propList: ['*', '!min-width', '!min-height'],
          minValue: 10
          // exclude:[/Tabbar/] //以Tabbar文件开头的不转化
        })
      ]
    }
  }
});