import * as path from "path"; import postcsspxtoviewport8plugin from 'postcss-px-to-viewport-8-plugin' const resolve = (dir) => path.resolve(__dirname, dir); import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // https://vitejs.dev/config/ export default defineConfig({ server:{ cors: true, proxy: { '^/api-v2': { // 代理请求之后的请求地址(你的真实接口地址) target: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod-2/', //target: 'http://192.168.3.32:9250/', secure: false, ws: true, // 跨域 changeOrigin: true, rewrite: (path) => path.replace(/^\/api-v2/, ''), configure: (proxy) => { proxy.on('proxyReq', function (proxyReq) { proxyReq.removeHeader('referer') proxyReq.removeHeader('origin') proxyReq.setHeader('host','cimweb.zjw.sh.cegn.cn:2007') }) }, }, // 代理所有 /api 的请求,该求情将被代理到 target 中 '/api': { // 代理请求之后的请求地址(你的真实接口地址) target: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/', //target: 'http://localhost:9250/', secure: false, ws: true, // 跨域 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') }, '/addressapi': { // 代理请求之后的请求地址(你的真实接口地址) target: 'https://cimweb.zjw.sh.cegn.cn:2008/', // target: 'http://localhost:9250/', secure: false, ws: true, // 跨域 changeOrigin: true, rewrite: (path) => path.replace(/^\/addressapi/, '') } }, }, css:{ postcss:{ plugins:[ postcsspxtoviewport8plugin({ unitToConvert: 'px', // 要转化的单位 viewportWidth: 1920, // UI设计稿的宽度 unitPrecision: 6, // 转换后的精度,即小数点位数 propList: [ 'width', 'left', 'right', 'font-size', 'margin-left', 'margin-right', 'text-indent', 'padding-left', 'padding-right', 'padding', ], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换 viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名 minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换 mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false replace: true, // 是否转换后直接更换属性值 exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配 // exclude: [], include: [ /\/src\/pages\/amap\/factor-monitor.vue/, ], landscape: false, // 是否处理横屏情况 }), // 处理属性转vh的情况 postcsspxtoviewport8plugin({ unitToConvert: 'px', // 要转化的单位 viewportWidth: 1080, // UI设计稿的宽度 unitPrecision: 6, // 转换后的精度,即小数点位数 propList: [ 'height', 'top', 'bottom', 'margin-top', 'margin-bottom', 'padding-top', 'padding-bottom', 'line-height', ], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换 viewportUnit: 'vh', // 指定需要转换成的视窗单位,默认vw fontViewportUnit: 'vh', // 指定字体需要转换成的视窗单位,默认vw selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名 minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换 mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false replace: true, // 是否转换后直接更换属性值 exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配 // exclude: [], include: [ /\/src\/pages\/amap\/factor-monitor.vue/, ], landscape: false, // 是否处理横屏情况 }) ] } }, //https:true, plugins: [vue(), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }),], base:'./', build:{ outDir:'space-share-exchange' }, publicDir: resolve('static'), resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } } })