feat: 初始化
This commit is contained in:
16
vite/plugins/auto-import.js
Normal file
16
vite/plugins/auto-import.js
Normal file
@ -0,0 +1,16 @@
|
||||
import autoImport from 'unplugin-auto-import/vite'
|
||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||||
|
||||
export default function createAutoImport() {
|
||||
return autoImport({
|
||||
imports: [
|
||||
'vue',
|
||||
'vue-router',
|
||||
'pinia'
|
||||
],
|
||||
dts: false,
|
||||
resolvers: [
|
||||
ElementPlusResolver({importStyle: "sass"})
|
||||
]
|
||||
})
|
||||
}
|
12
vite/plugins/components.js
Normal file
12
vite/plugins/components.js
Normal file
@ -0,0 +1,12 @@
|
||||
import Components from 'unplugin-vue-components/vite'
|
||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||||
|
||||
export default function createComponents() {
|
||||
return Components({
|
||||
resolvers: [
|
||||
ElementPlusResolver({
|
||||
importStyle: "sass"
|
||||
})
|
||||
]
|
||||
})
|
||||
}
|
28
vite/plugins/compression.js
Normal file
28
vite/plugins/compression.js
Normal file
@ -0,0 +1,28 @@
|
||||
import compression from 'vite-plugin-compression'
|
||||
|
||||
export default function createCompression(env) {
|
||||
const { VITE_BUILD_COMPRESS } = env
|
||||
const plugin = []
|
||||
if (VITE_BUILD_COMPRESS) {
|
||||
const compressList = VITE_BUILD_COMPRESS.split(',')
|
||||
if (compressList.includes('gzip')) {
|
||||
// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
|
||||
plugin.push(
|
||||
compression({
|
||||
ext: '.gz',
|
||||
deleteOriginFile: false
|
||||
})
|
||||
)
|
||||
}
|
||||
if (compressList.includes('brotli')) {
|
||||
plugin.push(
|
||||
compression({
|
||||
ext: '.br',
|
||||
algorithm: 'brotliCompress',
|
||||
deleteOriginFile: false
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
return plugin
|
||||
}
|
7
vite/plugins/element-plus.js
Normal file
7
vite/plugins/element-plus.js
Normal file
@ -0,0 +1,7 @@
|
||||
import ElementPlus from 'unplugin-element-plus/vite'
|
||||
|
||||
export default function createElementPlus() {
|
||||
return ElementPlus({
|
||||
useSource: true
|
||||
})
|
||||
}
|
23
vite/plugins/index.js
Normal file
23
vite/plugins/index.js
Normal file
@ -0,0 +1,23 @@
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
import createAutoImport from './auto-import'
|
||||
import createComponents from './components'
|
||||
import createElementPlus from './element-plus'
|
||||
import createSvgIcon from './svg-icon'
|
||||
import createCompression from './compression'
|
||||
import createSetupExtend from './setup-extend'
|
||||
|
||||
export default function createVitePlugins(viteEnv, isBuild = false) {
|
||||
const vitePlugins = [vue({
|
||||
script: {
|
||||
defineModel: true,
|
||||
},
|
||||
})]
|
||||
vitePlugins.push(createAutoImport())
|
||||
vitePlugins.push(createComponents())
|
||||
vitePlugins.push(createElementPlus())
|
||||
vitePlugins.push(createSetupExtend())
|
||||
vitePlugins.push(createSvgIcon(isBuild))
|
||||
isBuild && vitePlugins.push(...createCompression(viteEnv))
|
||||
return vitePlugins
|
||||
}
|
5
vite/plugins/setup-extend.js
Normal file
5
vite/plugins/setup-extend.js
Normal file
@ -0,0 +1,5 @@
|
||||
import setupExtend from 'unplugin-vue-setup-extend-plus/vite'
|
||||
|
||||
export default function createSetupExtend() {
|
||||
return setupExtend({})
|
||||
}
|
10
vite/plugins/svg-icon.js
Normal file
10
vite/plugins/svg-icon.js
Normal file
@ -0,0 +1,10 @@
|
||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
||||
import path from 'path'
|
||||
|
||||
export default function createSvgIcon(isBuild) {
|
||||
return createSvgIconsPlugin({
|
||||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
|
||||
symbolId: 'icon-[dir]-[name]',
|
||||
svgoOptions: isBuild
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user