haoxuan
2024-01-19 13f102240d9c0c9d5a133fb093551f2e08d7c55c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import path from 'path'
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 IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// 兼容低版本浏览器
import legacy from '@vitejs/plugin-legacy'
const pathSrc = path.resolve(__dirname, 'src')
 
// https://vitejs.dev/config/
export default defineConfig({
  server: {
    proxy: {
      '/v1/': {
        target: 'http://192.168.20.119:8003',
        ws: true,
        changeOrigin: true
      }
    }
  },
  resolve: {
    alias: {
      '@': pathSrc
    },
  },
  
  build: {
    target:['chrome52'],
    cssTarget:["chrome52"],
  },
  plugins: [
    vue(),
    // element plus 自动导入
    AutoImport({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      // imports: ['vue'],
      // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
      resolvers: [
        ElementPlusResolver(),
        // 自动导入图标组件
        IconsResolver({
          prefix: 'Icon'
        })
      ],
 
      dts: path.resolve(pathSrc, 'auto-imports.d.ts')
    }),
   
    // 兼容低版本浏览器
    legacy({
      targets: ['defaults', 'ie >= 11', 'chrome < 60','firefox < 59'], //需要兼容的目标列表,可以设置多个
      additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
      renderLegacyChunks: true,
      modernPolyfills:true,
      polyfills: [
        'es.symbol',
        'es.array.filter',
        'es.promise',
        'es.promise.finally',
        'es/map',
        'es/set',
        'es.array.for-each',
        'es.object.define-properties',
        'es.object.define-property',
        'es.object.get-own-property-descriptor',
        'es.object.get-own-property-descriptors',
        'es.object.keys',
        'es.object.to-string',
        'web.dom-collections.for-each',
        'esnext.global-this',
        'esnext.string.match-all'
      ]
    }),
    Components({
      resolvers: [
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep']
        }),
        // 自动导入 Element Plus 组件
        ElementPlusResolver()
      ],
      dts: path.resolve(pathSrc, 'components.d.ts')
    }),
    Icons({
      autoInstall: true
    }),
  ],
  configureWebpack:config=>{
    config.entry.app=['babel-polyfill','./src/main.js']
  },
  // chainWebpack: (config) => {
  //   config.entry('main').add('babel-polyfill')
  // },
})