diff --git a/build/vite/plugin/compress.ts b/build/vite/plugin/compress.ts index 8651994a..bfa07503 100644 --- a/build/vite/plugin/compress.ts +++ b/build/vite/plugin/compress.ts @@ -2,36 +2,36 @@ * 用于打包和输出gzip * https://github.com/anncwb/vite-plugin-compression/blob/main/README.zh_CN.md */ -import viteCompression from 'vite-plugin-compression' +import viteCompression from 'vite-plugin-compression'; -import type { Plugin } from 'vite' +import type { Plugin } from 'vite'; export function configCompressPlugin( - compress: 'gzip' | 'brotli' | 'none', - deleteOriginFile = false + compress: 'gzip' | 'brotli' | 'none', + deleteOriginFile = false, ): Plugin | Plugin[] { - let options = {} - if (compress === 'gzip') { - options = { - ext: '.gz', - algorithm: 'gzip', - } - } - if (compress === 'brotli') { - options = { - ext: '.br', - algorithm: 'brotliCompress', - } - } - const plugin: Plugin[] = [ - viteCompression({ - verbose: true, - disable: true, - threshold: 1500, - deleteOriginFile, - ...options, - }), - ] + let options = {}; + if (compress === 'gzip') { + options = { + ext: '.gz', + algorithm: 'gzip', + }; + } + if (compress === 'brotli') { + options = { + ext: '.br', + algorithm: 'brotliCompress', + }; + } + const plugin: Plugin[] = [ + viteCompression({ + verbose: true, + disable: true, + threshold: 1500, + deleteOriginFile, + ...options, + }), + ]; - return plugin + return plugin; } diff --git a/build/vite/plugin/index.ts b/build/vite/plugin/index.ts index d805d7d6..a8dc4b48 100644 --- a/build/vite/plugin/index.ts +++ b/build/vite/plugin/index.ts @@ -14,6 +14,9 @@ import { configSvgPlugin } from './svg'; import { configCompressPlugin } from './compress'; // mock import { configMockPlugin } from './mock'; +// 按需element样式 +import ElementPlus from 'unplugin-element-plus/vite'; + // eslint // import { configEsLinterPlugin } from './eslinter' @@ -32,6 +35,8 @@ export function createVitePlugins(isBuild = false, _configEnv: ConfigEnv) { vitePlugins.push(configMockPlugin(isBuild)); + vitePlugins.push(ElementPlus()); + // 使用此插件会导致vite启动变慢 100ms左右 // vitePlugins.push(configEsLinterPlugin(configEnv)) diff --git a/build/vite/plugin/style.ts b/build/vite/plugin/style.ts index 1496c615..3c84b750 100644 --- a/build/vite/plugin/style.ts +++ b/build/vite/plugin/style.ts @@ -7,24 +7,24 @@ import type { Plugin } from 'vite'; export function configStylePlugin(): Plugin | Plugin[] { const options = { - libs: [ - { - libraryName: 'element-plus', - esModule: true, - ensureStyleFile: true, - resolveStyle: (name: any) => { - name = name.slice(3); - // 使用element scss样式 - return `element-plus/packages/theme-chalk/src/${name}.scss`; - // 使用element css样式 - // return `element-plus/lib/theme-chalk/${name}.css`; - }, - // resolveComponent: (name: any) => { - // console.log(name) - // return `element-plus/lib/${name}` - // }, - }, - ], + // libs: [ + // { + // libraryName: 'element-plus', + // esModule: true, + // ensureStyleFile: true, + // resolveStyle: (name: any) => { + // name = name.slice(3); + // // 使用element scss样式 + // return `element-plus/packages/theme-chalk/src/${name}.scss`; + // // 使用element css样式 + // // return `element-plus/lib/theme-chalk/${name}.css`; + // }, + // // resolveComponent: (name: any) => { + // // console.log(name) + // // return `element-plus/lib/${name}` + // // }, + // }, + // ], }; const plugin: Plugin[] = [styleImport(options)]; return plugin; diff --git a/build/vite/plugin/svg.ts b/build/vite/plugin/svg.ts index 4048c94d..77a527fa 100644 --- a/build/vite/plugin/svg.ts +++ b/build/vite/plugin/svg.ts @@ -2,17 +2,17 @@ * svg * https://github.com/anncwb/vite-plugin-svg-icons/blob/main/README.zh_CN.md */ -import viteSvgIcons from 'vite-plugin-svg-icons' -import path from 'path' +import viteSvgIcons from 'vite-plugin-svg-icons'; +import path from 'path'; export function configSvgPlugin() { - const svgPlugin = viteSvgIcons({ - // 指定需要缓存的图标文件夹 - iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], - // 压缩配置 - // svgoOptions: false, - // 指定symbolId格式 - symbolId: 'icon-[dir]-[name]', - }) - return svgPlugin + const svgPlugin = viteSvgIcons({ + // 指定需要缓存的图标文件夹 + iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], + // 压缩配置 + // svgoOptions: false, + // 指定symbolId格式 + symbolId: 'icon-[dir]-[name]', + }); + return svgPlugin; } diff --git a/package.json b/package.json index b492ca9e..361c6318 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "stylelint-order": "^5.0.0", "stylelint-scss": "^4.0.1", "typescript": "^4.5.4", + "unplugin-element-plus": "^0.2.0", "vite": "^2.7.3", "vite-plugin-compression": "^0.3.6", "vite-plugin-linter": "^1.0.2", diff --git a/src/components/Form/componentMap.ts b/src/components/Form/componentMap.ts index f7b0086f..c38821b8 100644 --- a/src/components/Form/componentMap.ts +++ b/src/components/Form/componentMap.ts @@ -1,18 +1,18 @@ import type { Component } from 'vue'; -import { ElInput, ElDatePicker, ElCascader, ElSelect, ElCheckbox, ElRadio } from 'element-plus'; +// import { ElInput, ElDatePicker, ElCascader, ElSelect, ElCheckbox, ElRadio } from 'element-plus'; const componentMap = new Map(); -componentMap.set('ElInput', ElInput); -componentMap.set('ElDatePicker', ElDatePicker); -componentMap.set('ElCascader', ElCascader); +// componentMap.set('ElInput', ElInput); +// componentMap.set('ElDatePicker', ElDatePicker); +// componentMap.set('ElCascader', ElCascader); -componentMap.set('ElSelect', ElSelect); -componentMap.set('ElOption', ElSelect.Option); -componentMap.set('ElCheckbox', ElCheckbox); -componentMap.set('ElCheckboxGroup', ElCheckbox.CheckboxGroup); -componentMap.set('ElRadio', ElRadio); -componentMap.set('ElRadioGroup', ElRadio.RadioGroup); +// componentMap.set('ElSelect', ElSelect); +// componentMap.set('ElOption', ElSelect.Option); +// componentMap.set('ElCheckbox', ElCheckbox); +// componentMap.set('ElCheckboxGroup', ElCheckbox.CheckboxGroup); +// componentMap.set('ElRadio', ElRadio); +// componentMap.set('ElRadioGroup', ElRadio.RadioGroup); const elComponentItem: Recordable = { ElSelect: 'ElOption', diff --git a/src/components/Form/src/components/FormItem.vue b/src/components/Form/src/components/FormItem.vue index 78d833dd..f642254f 100644 --- a/src/components/Form/src/components/FormItem.vue +++ b/src/components/Form/src/components/FormItem.vue @@ -1,7 +1,7 @@