From 7c4dd24481267f3f22a85f48e2d7cc95660d8fc1 Mon Sep 17 00:00:00 2001 From: nebv Date: Tue, 13 Oct 2020 23:52:01 +0800 Subject: [PATCH] chore: minify html --- README.md | 2 +- build/script/updateHtml.ts | 7 ++- package.json | 2 + src/App.vue | 2 + src/components/Menu/src/index.less | 11 +++- src/layouts/default/LayoutMenu.tsx | 1 - vite.config.ts | 14 +++++ yarn.lock | 92 +++++++++++++++++++++++++++++- 8 files changed, 125 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ba477d48..e051a9de 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ 1.0 分支请切换到`master`分支。1.0 采用`vue2.6`+`vue-composition-api`+`vue-cli`开发 -项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tailwindcss`,`tsx`实现的 vue3 风格的后台管理系统, +项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tsx`实现的 vue3 风格的后台管理系统, ## gitHub 地址 diff --git a/build/script/updateHtml.ts b/build/script/updateHtml.ts index 38286e29..f5de56a2 100644 --- a/build/script/updateHtml.ts +++ b/build/script/updateHtml.ts @@ -3,9 +3,10 @@ import viteConfig, { htmlConfig } from '../../vite.config'; import { getCwdPath, successConsole, errorConsole } from '../utils'; import { GLOB_CONFIG_FILE_NAME } from '../constant'; import { hmScript } from './hm'; +import HtmlMinifier from 'html-minifier'; const pkg = require('../../package.json'); -const { title, addHm, cdnConf, useCdn } = htmlConfig; +const { title, addHm, cdnConf, useCdn, minify } = htmlConfig; function injectTitle(html: string, htmlTitle: string) { if (/<\/title>/.test(html)) { @@ -89,6 +90,10 @@ export async function runUpdateHtml() { processedHtml = injectCdnCss(processedHtml); processedHtml = injectCdnjs(processedHtml); } + if (minify) { + const { enable, ...miniOpt } = minify; + processedHtml = HtmlMinifier.minify(processedHtml, miniOpt); + } writeFileSync(indexPath, processedHtml); successConsole('Update Html Successfully!'); diff --git a/package.json b/package.json index aad05fea..f9ddfbe1 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "@purge-icons/generated": "^0.4.1", "@types/echarts": "^4.8.0", "@types/fs-extra": "^9.0.2", + "@types/html-minifier": "^4.0.0", "@types/inquirer": "^7.3.1", "@types/koa-static": "^4.0.1", "@types/lodash-es": "^4.17.3", @@ -70,6 +71,7 @@ "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-vue": "^7.0.1", "fs-extra": "^9.0.1", + "html-minifier": "^4.0.0", "husky": "^4.3.0", "inquirer": "^7.3.3", "koa-static": "^5.0.0", diff --git a/src/App.vue b/src/App.vue index 586f6f8a..3b10396b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -12,6 +12,7 @@ import zhCN from 'ant-design-vue/es/locale/zh_CN'; import moment from 'moment'; import 'moment/locale/zh-cn'; + import axios from 'axios'; import { useConfigProvider, useInitAppConfigStore, useListenerNetWork } from './useApp'; import { useLockPage } from '/@/hooks/web/useLockPage'; @@ -25,6 +26,7 @@ createBreakpointListen(); const { transformCellText } = useConfigProvider(); const { on: lockOn } = useLockPage(); + axios.get('/api/users?page=2'); return { transformCellText, zhCN, diff --git a/src/components/Menu/src/index.less b/src/components/Menu/src/index.less index 7847fe0b..3ebb5af3 100644 --- a/src/components/Menu/src/index.less +++ b/src/components/Menu/src/index.less @@ -14,6 +14,14 @@ } .basic-menu { + .ant-menu-submenu:first-of-type { + margin-top: 4px; + } + + .ant-menu-submenu-title { + margin-top: 0; + } + &-wrap { height: 100%; } @@ -151,7 +159,8 @@ // 2级菜单 - .basic-menu-item__level2:not(.ant-menu-item-selected) { + .basic-menu-item__level2:not(.ant-menu-item-selected), + .ant-menu-sub { background-color: @sub-menu-item-dark-bg-color; } diff --git a/src/layouts/default/LayoutMenu.tsx b/src/layouts/default/LayoutMenu.tsx index 6bdf20bb..d64cb2bd 100644 --- a/src/layouts/default/LayoutMenu.tsx +++ b/src/layouts/default/LayoutMenu.tsx @@ -183,7 +183,6 @@ export default defineComponent({ const isSidebarType = menuType === MenuTypeEnum.SIDEBAR; const isShowLogo = showLogo && isSidebarType; const themeData = props.theme || theme; - return (