初始化

This commit is contained in:
2024-11-28 13:40:47 +08:00
parent bc75b6012c
commit 4a3117405b
278 changed files with 36671 additions and 25 deletions

View File

@@ -0,0 +1,12 @@
import autoImport from 'unplugin-auto-import/vite'
export default function createAutoImport() {
return autoImport({
imports: [
'vue',
'vue-router',
'pinia'
],
dts: "src/auto-import.d.ts" // 生成 `auto-import.d.ts` 全局声明
})
}

View File

@@ -0,0 +1,30 @@
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({
algorithm: 'gzip',
threshold: 10240,//>=10kb的文件进行压缩
verbose: false,
deleteOriginFile: false
})
)
}
if (compressList.includes('brotli')) {
plugin.push(
compression({
ext: '.br',
algorithm: 'brotliCompress',
deleteOriginFile: false
})
)
}
}
return plugin
}

37
vite/plugins/index.js Normal file
View File

@@ -0,0 +1,37 @@
import vue from '@vitejs/plugin-vue'
import createAutoImport from './auto-import'
import createSvgIcon from './svg-icon'
import createCompression from './compression'
import createSetupExtend from './setup-extend'
// import { createStyleImportPlugin, VxeTableResolve } from 'vite-plugin-style-import'
import { lazyImport, VxeResolver } from 'vite-plugin-lazy-import'
export default function createVitePlugins(viteEnv, isBuild = false) {
const vitePlugins = [vue()]
vitePlugins.push(createAutoImport())
vitePlugins.push(createSetupExtend())
vitePlugins.push(createSvgIcon(isBuild))
isBuild && vitePlugins.push(...createCompression(viteEnv))
// vitePlugins.push(
// createStyleImportPlugin({
// resolves: [VxeTableResolve()]
// })
// )
// Vxe 按需导入
vitePlugins.push(
lazyImport({
resolvers: [
VxeResolver({
libraryName: 'vxe-table'
}),
VxeResolver({
libraryName: 'vxe-pc-ui'
})
]
})
)
return vitePlugins
}

View File

@@ -0,0 +1,5 @@
import setupExtend from 'vite-plugin-vue-setup-extend'
export default function createSetupExtend() {
return setupExtend()
}

10
vite/plugins/svg-icon.js Normal file
View 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
})
}