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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
| 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'
| // 开发环境兼容
| import esbuild from 'rollup-plugin-esbuild'
| const pathSrc = path.resolve(__dirname, 'src')
|
| // https://vitejs.dev/config/
| export default defineConfig({
| server: {
| proxy: {
| '/v1/': {
| // http://192.168.20.119:8003
| target: 'http://192.168.20.25:7010',
| ws: true,
| changeOrigin: true
| }
| }
| },
| resolve: {
| alias: {
| '@': pathSrc
| },
| },
|
| build: {
| minify:'terser',
| // ,'edge90','firefox90','safari15'
| target:['chrome52'],
| cssTarget:["chrome52"],
| },
| css:{
| postcss:{
| plugins:[
| require('postcss-pxtorem')({
| // ipad:1280-800
| rootValue:160.0, //换算的基数, 屏幕宽度/10
| propList:['*'],//需要转化的属性,*表示所有属性都需要转化
| // unitPrecision:5
| })
| ]
| }
|
| },
| 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')
| }),
| // 开发环境兼容
| esbuild({
| target:"chrome64",
| loaders:{
| ".vue":'js',
| ".ts":'js'
| }
| }),
| // 兼容低版本浏览器
| // legacy({
| // // ie >= 11
| // targets: ['defaults', 'not 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']
| // },
| // transpileDependencies:['*']
| // chainWebpack: (config) => {
| // config.entry('main').add('babel-polyfill')
| // },
| })
|
|