123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import * as path from "path";
- 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'
- import postcsspxtoviewport8plugin from 'postcss-px-to-viewport-8-plugin'
- import postcssPxToViewport from 'postcss-px-to-viewport'
- export default defineConfig({
- server:{
- cors: true,
- proxy: {
- // 代理所有 /api 的请求,该求情将被代理到 target 中
- '/api': {
- // 代理请求之后的请求地址(你的真实接口地址)
- target: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod-2/',
- // target: 'http://192.168.3.60:9250/',
- secure: false,
- ws: true,
- // 跨域
- changeOrigin: true,
- rewrite: (path) => path.replace(/^\/api/, '')
- },
- '/addressapi': {
- // 代理请求之后的请求地址(你的真实接口地址)
- target: 'https://cimweb.zjw.sh.cegn.cn:2008/',
- // target: 'http://192.168.3.60:9250/',
- secure: false,
- ws: true,
- // 跨域
- changeOrigin: true,
- rewrite: (path) => path.replace(/^\/addressapi/, '')
- }
- },
- },
- css:{
- postcss:{
- plugins:[
- // 处理vh的情况
- //在github下载的可以处理include
- postcssPxToViewport({
- //这里宽也根据vh来转换
- unitToConvert: 'px', // 要转化的单位
- viewportWidth: 1080, // UI设计稿的宽度
- unitPrecision: 6, // 转换后的精度,即小数点位数
- propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
- viewportUnit: 'vh', // 指定需要转换成的视窗单位,默认vw
- fontViewportUnit: 'vh', // 指定字体需要转换成的视窗单位,默认vw
- selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名
- minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
- mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
- replace: true, // 是否转换后直接更换属性值
- minValue:10,
- include: [/views\/IOTDataAnalysis/],//postcssPxToViewport只有github上的代码支持了include,npm版本没更新include,坑
- landscape: false, // 是否处理横屏情况
- }),
- 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, // 是否处理横屏情况
- }),
- ]
- }
- },
- plugins: [vue(), AutoImport({
- resolvers: [ElementPlusResolver()],
- }),
- Components({
- resolvers: [ElementPlusResolver()],
- }),],
- base:'./',
- resolve: {
- alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url))
- }
- }
- })
|