import { fileURLToPath, URL } from 'node:url'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import postcssPxToViewport from 'postcss-px-to-viewport'; import commonjs from 'vite-plugin-commonjs'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), commonjs({ include: /utils\/map\/CityGis.Bridge.js/, // 包含的文件路径 exclude: [], // 排除的文件路径 extensions: ['.js'], // 需要转换的文件扩展名 ignoreGlobal: false, // 是否忽略全局变量(例如 Buffer) sourceMap: false, // 是否生成源映射 namedExports: {}, // 命名导出(名称和值) ignore: [], // 忽略文件的正则表达式 transformMixedEsModules: true // 是否转换混合的 ES 模块 }) ], server: { proxy: { '/api': { //apiTest是自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来 target: 'http://10.1.161.187:7878/', // 需要代理的域名 secure: false, changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') //重写匹配的字段,如果不需要放在请求路径上,可以重写为"" } } }, 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文件开头的不转化 }) ] } } });