¶Ô±ÈÐÂÎļþ |
| | |
| | | import compression from 'vite-plugin-compression'; |
| | | |
| | | export default function createCompression(env) { |
| | | const { VITE_BUILD_COMPRESS } = env; |
| | | const plugin: any[] = []; |
| | | 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; |
| | | } |
| | |
| | | import createComponents from './components'; |
| | | import createIcons from './icons'; |
| | | import createSvgIconsPlugin from './svg-icon'; |
| | | import createCompression from './compression'; |
| | | import path from 'path'; |
| | | |
| | | export default (viteEnv, isBuild = false): [] => { |
| | |
| | | vitePlusgins.push(createUnoCss()); |
| | | vitePlusgins.push(createAutoImport(path)); |
| | | vitePlusgins.push(createComponents(path)); |
| | | vitePlusgins.push(createCompression(viteEnv)); |
| | | vitePlusgins.push(createIcons()); |
| | | vitePlusgins.push(createSvgIconsPlugin(path)); |
| | | vitePlusgins.push(createSvgIconsPlugin(path, isBuild)); |
| | | return vitePlusgins; |
| | | }; |
| | |
| | | import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; |
| | | export default (path: any) => { |
| | | export default (path: any, isBuild: boolean) => { |
| | | return createSvgIconsPlugin({ |
| | | // æå®éè¦ç¼åç徿 æä»¶å¤¹ |
| | | iconDirs: [path.resolve(path.resolve(__dirname, '../../src'), 'assets/icons/svg')], |
| | | // æå®symbolIdæ ¼å¼ |
| | | symbolId: 'icon-[dir]-[name]' |
| | | symbolId: 'icon-[dir]-[name]', |
| | | svgoOptions: isBuild |
| | | }); |
| | | }; |
| | |
| | | @import './btn.scss'; |
| | | @import './ruoyi.scss'; |
| | | @import 'animate.css'; |
| | | // @import 'element-plus/dist/index.css'; |
| | | @import 'element-plus/dist/index.css'; |
| | | |
| | | body { |
| | | height: 100%; |
| | |
| | | const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] |
| | | const ElNotification: typeof import('element-plus/es')['ElNotification'] |
| | | const ElSelect: typeof import('element-plus/es')['ElSelect'] |
| | | const ElTable: typeof import('element-plus/es')['ElTable'] |
| | | const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] |
| | | const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] |
| | | const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] |
| | |
| | | readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']> |
| | | readonly ElNotification: UnwrapRef<typeof import('element-plus/es')['ElNotification']> |
| | | readonly ElSelect: UnwrapRef<typeof import('element-plus/es')['ElSelect']> |
| | | readonly ElTable: UnwrapRef<typeof import('element-plus/es')['ElTable']> |
| | | readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']> |
| | | readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']> |
| | | readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']> |