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