Commit 173d4021629ca6efdeccb5ab234c5c346813b255

Authored by vben
1 parent 7bd0b8eb

refactor: add vite-plugin-html. Delete updateHtml related logic

CHANGELOG.zh_CN.md
1 -## # 2.0.0-rc.5 (2020-10-26) 1 +## Wip
  2 +
  3 +### 🎫 Chores
  4 +
  5 +- 升级 vite 版本为`v1.0.0.rc8`
  6 +- vite.config.ts 内部 plugins 抽取
  7 +- build 目录结构调整
  8 +- 依赖更新
  9 +
  10 +### ✨ Refactor
  11 +
  12 +- 独立出`vite-plugin-html`,并修改相关插入 html 的逻辑
  13 +
  14 +## 2.0.0-rc.5 (2020-10-26)
2 15
3 ### ✨ Features 16 ### ✨ Features
4 17
README.en-US.md
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
31 - [Finished features](#finished-features) 31 - [Finished features](#finished-features)
32 - [Developing features](#developing-features) 32 - [Developing features](#developing-features)
33 - [Browser support](#browser-support) 33 - [Browser support](#browser-support)
  34 +- [Plugins](#plugins)
34 35
35 ## Introduction 36 ## Introduction
36 37
@@ -250,3 +251,10 @@ Support modern browsers, Not currently supported ie11,Follow-up consideration @@ -250,3 +251,10 @@ Support modern browsers, Not currently supported ie11,Follow-up consideration
250 | not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | 251 | not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
251 252
252 More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module) 253 More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
  254 +
  255 +## Plugins
  256 +
  257 +If these plugins are helpful to you, you can give a star
  258 +
  259 +- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
  260 +- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
README.md
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
31 - [已完成功能](#已完成功能) 31 - [已完成功能](#已完成功能)
32 - [正在开发的功能](#正在开发的功能) 32 - [正在开发的功能](#正在开发的功能)
33 - [浏览器支持](#浏览器支持) 33 - [浏览器支持](#浏览器支持)
  34 +- [插件](#插件-1)
34 - [加入我们](#加入我们) 35 - [加入我们](#加入我们)
35 36
36 ## 介绍 37 ## 介绍
@@ -249,6 +250,13 @@ yarn clean:lib # 删除node_modules,兼容window系统 @@ -249,6 +250,13 @@ yarn clean:lib # 删除node_modules,兼容window系统
249 250
250 更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module) 251 更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
251 252
  253 +## 插件
  254 +
  255 +如果这些插件对你有帮助,可以给一个 star 支持下
  256 +
  257 +- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
  258 +- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
  259 +
252 ## 加入我们 260 ## 加入我们
253 261
254 `Vue-Vben-Aadmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群(项目刚起步,人数较少,有兴趣的可以加群一起讨论),使用问题欢迎在群内提问。 262 `Vue-Vben-Aadmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群(项目刚起步,人数较少,有兴趣的可以加群一起讨论),使用问题欢迎在群内提问。
build/config/glob/lessModifyVars.ts renamed to build/config/lessModifyVars.ts
build/script/postBuild.ts
@@ -4,15 +4,15 @@ import { sh } from 'tasksfile'; @@ -4,15 +4,15 @@ import { sh } from 'tasksfile';
4 4
5 import { argv } from 'yargs'; 5 import { argv } from 'yargs';
6 import { runBuildConfig } from './buildConf'; 6 import { runBuildConfig } from './buildConf';
7 -import { runUpdateHtml } from './updateHtml'; 7 +// import { runUpdateHtml } from './updateHtml';
8 import { errorConsole, successConsole } from '../utils'; 8 import { errorConsole, successConsole } from '../utils';
9 -import { startGzipStyle } from '../plugin/gzip/compress'; 9 +import { startGzipStyle } from '../vite/plugin/gzip/compress';
10 10
11 export const runBuild = async (preview = false) => { 11 export const runBuild = async (preview = false) => {
12 try { 12 try {
13 const argvList = argv._; 13 const argvList = argv._;
14 if (preview) { 14 if (preview) {
15 - let cmd = `npm run build`; 15 + let cmd = `cross-env NODE_ENV=production vite build`;
16 await sh(cmd, { 16 await sh(cmd, {
17 async: true, 17 async: true,
18 nopipe: true, 18 nopipe: true,
@@ -23,7 +23,7 @@ export const runBuild = async (preview = false) => { @@ -23,7 +23,7 @@ export const runBuild = async (preview = false) => {
23 if (!argvList.includes('no-conf')) { 23 if (!argvList.includes('no-conf')) {
24 await runBuildConfig(); 24 await runBuildConfig();
25 } 25 }
26 - await runUpdateHtml(); 26 + // await runUpdateHtml();
27 if (!preview) { 27 if (!preview) {
28 await startGzipStyle(); 28 await startGzipStyle();
29 } 29 }
build/script/updateHtml.ts deleted 100644 → 0
1 -import { readFileSync, writeFileSync, existsSync } from 'fs-extra';  
2 -import viteConfig, { htmlConfig } from '../../vite.config';  
3 -import { getCwdPath, successConsole, errorConsole } from '../utils';  
4 -import { GLOB_CONFIG_FILE_NAME } from '../constant';  
5 -import { hmScript } from './hm';  
6 -import HtmlMinifier from 'html-minifier';  
7 -const pkg = require('../../package.json');  
8 -  
9 -const { title, addHm, cdnConf, useCdn, minify } = htmlConfig;  
10 -  
11 -function injectTitle(html: string, htmlTitle: string) {  
12 - if (/<\/title>/.test(html)) {  
13 - return html.replace(/<\/title>/, `${htmlTitle}</title>`);  
14 - }  
15 - return html;  
16 -}  
17 -  
18 -function injectConfigScript(html: string) {  
19 - const tag = `\t\t<script src='${viteConfig.base || './'}${GLOB_CONFIG_FILE_NAME}?v=${  
20 - pkg.version  
21 - }-${new Date().getTime()}'></script>`;  
22 -  
23 - if (/<\/head>/.test(html)) {  
24 - return html.replace(/<\/head>/, `${tag}\n\t\t</head>`);  
25 - }  
26 - return html;  
27 -}  
28 -  
29 -function injectHmScript(html: string) {  
30 - if (/<head>/.test(html)) {  
31 - return html.replace(/<head>/, `<head>\n${hmScript}`);  
32 - }  
33 - return html;  
34 -}  
35 -  
36 -function injectCdnCss(html: string) {  
37 - if (!cdnConf) return html;  
38 - const { css } = cdnConf;  
39 - if (!css || css.length === 0) return html;  
40 -  
41 - let cdnCssTag = '';  
42 - for (const cssLink of css) {  
43 - cdnCssTag += `<link rel="stylesheet" href="${cssLink}">`;  
44 - }  
45 - if (/<\/head>/.test(html)) {  
46 - return html.replace(/<\/head>/, `${cdnCssTag}\n\t\t</head>`);  
47 - }  
48 - return html;  
49 -}  
50 -  
51 -function injectCdnjs(html: string) {  
52 - if (!cdnConf) return html;  
53 - const { js } = cdnConf;  
54 - if (!js || js.length === 0) return html;  
55 -  
56 - let cdnJsTag = '';  
57 - for (const src of js) {  
58 - // TODO  
59 - // <script type="importmap">  
60 - // { "imports": {  
61 - // "vue": "https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.0/vue.esm-browser.js",  
62 - // "vue-router": "https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.0.0-alpha.13/vue-router.esm.js",  
63 - // "vuex": "https://cdnjs.cloudflare.com/ajax/libs/vuex/4.0.0-beta.2/vuex.esm-browser.js"  
64 - // } }  
65 - // </script>  
66 - cdnJsTag += `\t<script type="text/javascript" src="${src}"></script>\n`;  
67 - }  
68 - if (/<\/body>/.test(html)) {  
69 - return html.replace(/<\/body>/, `${cdnJsTag}\n</body>`);  
70 - }  
71 - return html;  
72 -}  
73 -  
74 -export async function runUpdateHtml() {  
75 - const outDir = viteConfig.outDir || 'dist';  
76 - const indexPath = getCwdPath(outDir, 'index.html');  
77 - if (!existsSync(indexPath)) return;  
78 - try {  
79 - let processedHtml = '';  
80 - const rawHtml = readFileSync(indexPath, 'utf-8');  
81 - processedHtml = rawHtml;  
82 - processedHtml = injectTitle(processedHtml, title);  
83 - processedHtml = injectConfigScript(processedHtml);  
84 - if (addHm) {  
85 - processedHtml = injectHmScript(processedHtml);  
86 - }  
87 - if (useCdn) {  
88 - processedHtml = injectCdnCss(processedHtml);  
89 - processedHtml = injectCdnjs(processedHtml);  
90 - }  
91 - if (minify) {  
92 - const { enable, ...miniOpt } = minify;  
93 - if (enable) {  
94 - processedHtml = HtmlMinifier.minify(processedHtml, miniOpt);  
95 - }  
96 - }  
97 -  
98 - writeFileSync(indexPath, processedHtml);  
99 - successConsole('Update Html Successfully!');  
100 - } catch (error) {  
101 - errorConsole('Update Html Error\n' + error);  
102 - }  
103 -}  
build/config/vite/cdn.ts renamed to build/vite/cdn.ts
build/script/hm.ts renamed to build/vite/hm.ts
build/plugin/vite-plugin-context/transform.ts renamed to build/vite/plugin/context/transform.ts
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 // https://github.com/luxueyan/vite-transform-globby-import/blob/master/src/index.ts 2 // https://github.com/luxueyan/vite-transform-globby-import/blob/master/src/index.ts
3 3
4 // TODO 目前还不能监听文件新增及删除 内容已经改变,缓存问题? 4 // TODO 目前还不能监听文件新增及删除 内容已经改变,缓存问题?
5 -// 可以使用,先不打算集成  
6 import { join } from 'path'; 5 import { join } from 'path';
7 import { lstatSync } from 'fs'; 6 import { lstatSync } from 'fs';
8 import glob from 'glob'; 7 import glob from 'glob';
build/plugin/gzip/compress.ts renamed to build/vite/plugin/gzip/compress.ts
1 import { gzip } from 'zlib'; 1 import { gzip } from 'zlib';
2 import { readFileSync, writeFileSync } from 'fs'; 2 import { readFileSync, writeFileSync } from 'fs';
3 import { GzipPluginOptions } from './types'; 3 import { GzipPluginOptions } from './types';
4 -import viteConfig from '../../../vite.config';  
5 -import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../../utils'; 4 +import viteConfig from '../../../../vite.config';
  5 +import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../../../utils';
6 6
7 export function startGzip( 7 export function startGzip(
8 fileContent: string | Buffer, 8 fileContent: string | Buffer,
build/plugin/gzip/index.ts renamed to build/vite/plugin/gzip/index.ts
build/plugin/gzip/types.ts renamed to build/vite/plugin/gzip/types.ts
build/vite/plugin/index.ts 0 → 100644
  1 +import type { Plugin as VitePlugin } from 'vite';
  2 +import type { Plugin as rollupPlugin } from 'rollup';
  3 +
  4 +import { createMockServer } from 'vite-plugin-mock';
  5 +import ViteHtmlPlugin from 'vite-plugin-html';
  6 +import PurgeIcons from 'vite-plugin-purge-icons';
  7 +
  8 +import visualizer from 'rollup-plugin-visualizer';
  9 +import gzipPlugin from './gzip/index';
  10 +
  11 +import { hmScript } from '../hm';
  12 +
  13 +const pkg = require('../../../package.json');
  14 +
  15 +import { isDevFn, isProdFn, isSiteMode, ViteEnv, isReportMode, isBuildGzip } from '../../utils';
  16 +import { GLOB_CONFIG_FILE_NAME } from '../../constant';
  17 +
  18 +// gen vite plugins
  19 +export function createVitePlugins(viteEnv: ViteEnv) {
  20 + const { VITE_USE_MOCK, VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = viteEnv;
  21 +
  22 + const vitePlugins: VitePlugin[] = [];
  23 +
  24 + // vite-plugin-html
  25 + vitePlugins.push(
  26 + ViteHtmlPlugin({
  27 + // html title
  28 + title: VITE_GLOB_APP_TITLE,
  29 + minify: isProdFn(),
  30 + options: {
  31 + // Package and insert additional configuration files
  32 + injectConfig: isProdFn()
  33 + ? `<script src='${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
  34 + pkg.version
  35 + }-${new Date().getTime()}'></script>`
  36 + : '',
  37 + // Insert Baidu statistics code
  38 + hmScript: isSiteMode() ? hmScript : '',
  39 + },
  40 + })
  41 + );
  42 +
  43 + // vite-plugin-purge-icons
  44 + vitePlugins.push(PurgeIcons());
  45 +
  46 + // vite-plugin-mock
  47 + if (isDevFn() && VITE_USE_MOCK) {
  48 + // open mock
  49 + vitePlugins.push(
  50 + createMockServer({
  51 + ignore: /^\_/,
  52 + mockPath: 'mock',
  53 + })
  54 + );
  55 + }
  56 + return vitePlugins;
  57 +}
  58 +
  59 +// gen rollup plugins
  60 +export function createRollupPlugin() {
  61 + const rollupPlugins: rollupPlugin[] = [];
  62 +
  63 + if (isProdFn()) {
  64 + if (isReportMode()) {
  65 + // rollup-plugin-visualizer
  66 + rollupPlugins.push(
  67 + visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin
  68 + );
  69 + }
  70 + if (isBuildGzip() || isSiteMode()) {
  71 + // rollup-plugin-gizp
  72 + rollupPlugins.push(gzipPlugin());
  73 + }
  74 + }
  75 + return rollupPlugins;
  76 +}
build/config/vite/proxy.ts renamed to build/vite/proxy.ts
index.html
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
  4 + <%= viteHtmlPluginOptions.hmScript %>
4 <meta charset="UTF-8" /> 5 <meta charset="UTF-8" />
5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6 <meta name="renderer" content="webkit" /> 7 <meta name="renderer" content="webkit" />
@@ -10,6 +11,7 @@ @@ -10,6 +11,7 @@
10 /> 11 />
11 <title></title> 12 <title></title>
12 <link rel="icon" href="/favicon.ico" /> 13 <link rel="icon" href="/favicon.ico" />
  14 + <%= viteHtmlPluginOptions.injectConfig %>
13 </head> 15 </head>
14 <body> 16 <body>
15 <div id="app"> 17 <div id="app">
package.json
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 "scripts": { 4 "scripts": {
5 "bootstrap": "yarn install", 5 "bootstrap": "yarn install",
6 "serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite", 6 "serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
7 - "build": "cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts", 7 + "build": "rimraf dist && cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
8 "build:site": "cross-env SITE=true npm run build ", 8 "build:site": "cross-env SITE=true npm run build ",
9 "build:no-cache": "yarn clean:cache && npm run build", 9 "build:no-cache": "yarn clean:cache && npm run build",
10 "report": "cross-env REPORT=true npm run build ", 10 "report": "cross-env REPORT=true npm run build ",
@@ -48,7 +48,6 @@ @@ -48,7 +48,6 @@
48 "@purge-icons/generated": "^0.4.1", 48 "@purge-icons/generated": "^0.4.1",
49 "@types/echarts": "^4.8.3", 49 "@types/echarts": "^4.8.3",
50 "@types/fs-extra": "^9.0.2", 50 "@types/fs-extra": "^9.0.2",
51 - "@types/html-minifier": "^4.0.0",  
52 "@types/koa-static": "^4.0.1", 51 "@types/koa-static": "^4.0.1",
53 "@types/lodash-es": "^4.17.3", 52 "@types/lodash-es": "^4.17.3",
54 "@types/mockjs": "^1.0.3", 53 "@types/mockjs": "^1.0.3",
@@ -72,7 +71,6 @@ @@ -72,7 +71,6 @@
72 "eslint-plugin-vue": "^7.1.0", 71 "eslint-plugin-vue": "^7.1.0",
73 "esno": "^0.2.4", 72 "esno": "^0.2.4",
74 "fs-extra": "^9.0.1", 73 "fs-extra": "^9.0.1",
75 - "html-minifier": "^4.0.0",  
76 "husky": "^4.3.0", 74 "husky": "^4.3.0",
77 "koa-static": "^5.0.0", 75 "koa-static": "^5.0.0",
78 "less": "^3.12.2", 76 "less": "^3.12.2",
@@ -90,6 +88,7 @@ @@ -90,6 +88,7 @@
90 "tasksfile": "^5.1.1", 88 "tasksfile": "^5.1.1",
91 "ts-node": "^9.0.0", 89 "ts-node": "^9.0.0",
92 "typescript": "^4.0.5", 90 "typescript": "^4.0.5",
  91 + "vite-plugin-html": "^1.0.0-beta.2",
93 "vite-plugin-mock": "^1.0.4", 92 "vite-plugin-mock": "^1.0.4",
94 "vite-plugin-purge-icons": "^0.4.4", 93 "vite-plugin-purge-icons": "^0.4.4",
95 "vue-eslint-parser": "^7.1.1", 94 "vue-eslint-parser": "^7.1.1",
src/settings/projectSetting.ts
@@ -2,7 +2,7 @@ import type { ProjectConfig } from &#39;/@/types/config&#39;; @@ -2,7 +2,7 @@ import type { ProjectConfig } from &#39;/@/types/config&#39;;
2 2
3 import { MenuTypeEnum, MenuThemeEnum, MenuModeEnum } from '/@/enums/menuEnum'; 3 import { MenuTypeEnum, MenuThemeEnum, MenuModeEnum } from '/@/enums/menuEnum';
4 import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum'; 4 import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
5 -import { primaryColor } from '../../build/config/glob/lessModifyVars'; 5 +import { primaryColor } from '../../build/config/lessModifyVars';
6 import { isProdMode } from '/@/utils/env'; 6 import { isProdMode } from '/@/utils/env';
7 // ! 改动后需要清空浏览器缓存 7 // ! 改动后需要清空浏览器缓存
8 const setting: ProjectConfig = { 8 const setting: ProjectConfig = {
vite.config.ts
  1 +import type { UserConfig } from 'vite';
  2 +
1 import { resolve } from 'path'; 3 import { resolve } from 'path';
2 4
3 -import type { UserConfig, Plugin as VitePlugin } from 'vite'; 5 +import { modifyVars } from './build/config/lessModifyVars';
  6 +import { createProxy } from './build/vite/proxy';
  7 +import globbyTransform from './build/vite/plugin/context/transform';
  8 +
  9 +import { isDevFn, loadEnv } from './build/utils';
4 10
5 -import visualizer from 'rollup-plugin-visualizer';  
6 -import { modifyVars } from './build/config/glob/lessModifyVars';  
7 -import {  
8 - // externals,  
9 - cdnConf,  
10 -} from './build/config/vite/cdn';  
11 -import { createProxy } from './build/config/vite/proxy';  
12 -import { createMockServer } from 'vite-plugin-mock';  
13 -import PurgeIcons from 'vite-plugin-purge-icons';  
14 -import gzipPlugin from './build/plugin/gzip/index';  
15 -import globbyTransform from './build/plugin/vite-plugin-context/transform'; 11 +import { createRollupPlugin, createVitePlugins } from './build/vite/plugin';
16 12
17 -import { isDevFn, isReportMode, isProdFn, loadEnv, isBuildGzip, isSiteMode } from './build/utils';  
18 const pkg = require('./package.json'); 13 const pkg = require('./package.json');
19 14
  15 +const viteEnv = loadEnv();
  16 +
20 const { 17 const {
21 - VITE_USE_MOCK,  
22 VITE_PORT, 18 VITE_PORT,
23 VITE_PUBLIC_PATH, 19 VITE_PUBLIC_PATH,
24 VITE_PROXY, 20 VITE_PROXY,
25 - VITE_GLOB_APP_TITLE,  
26 VITE_DROP_CONSOLE, 21 VITE_DROP_CONSOLE,
27 // VITE_USE_CDN, 22 // VITE_USE_CDN,
28 -} = loadEnv(); 23 +} = viteEnv;
29 24
30 function pathResolve(dir: string) { 25 function pathResolve(dir: string) {
31 return resolve(__dirname, '.', dir); 26 return resolve(__dirname, '.', dir);
32 } 27 }
33 28
34 -const rollupPlugins: any[] = [];  
35 -const vitePlugins: VitePlugin[] = [];  
36 -  
37 -(() => {  
38 - if (isProdFn()) {  
39 - if (isReportMode()) {  
40 - // report  
41 - rollupPlugins.push(  
42 - visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin  
43 - );  
44 - }  
45 - if (isBuildGzip() || isSiteMode()) {  
46 - rollupPlugins.push(gzipPlugin());  
47 - }  
48 - }  
49 -  
50 - if (isDevFn() && VITE_USE_MOCK) {  
51 - // open mock  
52 - vitePlugins.push(  
53 - createMockServer({  
54 - ignore: /^\_/,  
55 - mockPath: 'mock',  
56 - })  
57 - );  
58 - }  
59 -})();  
60 -  
61 const viteConfig: UserConfig = { 29 const viteConfig: UserConfig = {
62 /** 30 /**
63 * Entry. Use this to specify a js entry file in use cases where an 31 * Entry. Use this to specify a js entry file in use cases where an
@@ -152,54 +120,14 @@ const viteConfig: UserConfig = { @@ -152,54 +120,14 @@ const viteConfig: UserConfig = {
152 120
153 // 本地跨域代理 121 // 本地跨域代理
154 proxy: createProxy(VITE_PROXY), 122 proxy: createProxy(VITE_PROXY),
155 -  
156 - plugins: [PurgeIcons(), ...vitePlugins],  
157 - rollupOutputOptions: {}, 123 + plugins: createVitePlugins(viteEnv),
158 rollupInputOptions: { 124 rollupInputOptions: {
159 // TODO 125 // TODO
160 // external: VITE_USE_CDN ? externals : [], 126 // external: VITE_USE_CDN ? externals : [],
161 - plugins: rollupPlugins, 127 + plugins: createRollupPlugin(),
162 }, 128 },
163 }; 129 };
164 130
165 -// 扩展配置, 往打包后的html注入内容  
166 -// 只针对生产环境  
167 -// TODO 目前只是简单手动注入实现,后续vite应该会提供配置项  
168 -export const htmlConfig: {  
169 - title: string;  
170 - addHm?: boolean;  
171 - cdnConf?: {  
172 - css?: string[];  
173 - js?: string[];  
174 - };  
175 - useCdn: boolean;  
176 - minify: {  
177 - enable: boolean;  
178 - removeComments: boolean;  
179 - collapseWhitespace: boolean;  
180 - minifyJS: boolean;  
181 - minifyCSS: boolean;  
182 - };  
183 -} = {  
184 - // html title  
185 - title: VITE_GLOB_APP_TITLE,  
186 - // 百度统计,不需要可以删除  
187 - // 用于打包部署站点使用。实际项目可以删除  
188 - addHm: isSiteMode(),  
189 - // 使用cdn打包  
190 - // TODO Cdn esm使用方式需要只能支持google,暂时关闭,后续查询更好的方式  
191 - useCdn: false,  
192 - // useCdn: VITE_USE_CDN,  
193 - // cdn列表  
194 - cdnConf,  
195 - minify: {  
196 - enable: true,  
197 - removeComments: true,  
198 - collapseWhitespace: true,  
199 - minifyJS: true,  
200 - minifyCSS: true,  
201 - },  
202 -};  
203 export default { 131 export default {
204 ...viteConfig, 132 ...viteConfig,
205 transforms: [globbyTransform(viteConfig)], 133 transforms: [globbyTransform(viteConfig)],
yarn.lock
@@ -352,10 +352,10 @@ @@ -352,10 +352,10 @@
352 resolved "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe" 352 resolved "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe"
353 integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ== 353 integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==
354 354
355 -"@eslint/eslintrc@^0.2.0":  
356 - version "0.2.0"  
357 - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.0.tgz#bc7e3c4304d4c8720968ccaee793087dfb5fe6b4"  
358 - integrity sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ== 355 +"@eslint/eslintrc@^0.2.1":
  356 + version "0.2.1"
  357 + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c"
  358 + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==
359 dependencies: 359 dependencies:
360 ajv "^6.12.4" 360 ajv "^6.12.4"
361 debug "^4.1.1" 361 debug "^4.1.1"
@@ -496,11 +496,10 @@ @@ -496,11 +496,10 @@
496 picomatch "^2.2.2" 496 picomatch "^2.2.2"
497 497
498 "@rollup/pluginutils@^4.0.0": 498 "@rollup/pluginutils@^4.0.0":
499 - version "4.0.0"  
500 - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.0.0.tgz#e18e9f5a3925779fc15209dd316c1bd260d195ef"  
501 - integrity sha512-b5QiJRye4JlSg29bKNEECoKbLuPXZkPEHSgEjjP1CJV1CPdDBybfYHfm6kyq8yK51h/Zsyl8OvWUrp0FUBukEQ== 499 + version "4.1.0"
  500 + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838"
  501 + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==
502 dependencies: 502 dependencies:
503 - "@types/estree" "0.0.45"  
504 estree-walker "^2.0.1" 503 estree-walker "^2.0.1"
505 picomatch "^2.2.2" 504 picomatch "^2.2.2"
506 505
@@ -542,13 +541,6 @@ @@ -542,13 +541,6 @@
542 "@types/connect" "*" 541 "@types/connect" "*"
543 "@types/node" "*" 542 "@types/node" "*"
544 543
545 -"@types/clean-css@*":  
546 - version "4.2.2"  
547 - resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.2.tgz#99fd79f6939c2b325938a1c569712e07dd97d709"  
548 - integrity sha512-xiTJn3bmDh1lA8c6iVJs4ZhHw+pcmxXlJQXOB6G1oULaak8rmarIeFKI4aTJ7849dEhaO612wgIualZfbxTJwA==  
549 - dependencies:  
550 - "@types/node" "*"  
551 -  
552 "@types/connect@*": 544 "@types/connect@*":
553 version "3.4.33" 545 version "3.4.33"
554 resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" 546 resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
@@ -578,7 +570,7 @@ @@ -578,7 +570,7 @@
578 dependencies: 570 dependencies:
579 "@types/zrender" "*" 571 "@types/zrender" "*"
580 572
581 -"@types/estree@*", "@types/estree@0.0.45": 573 +"@types/estree@*":
582 version "0.0.45" 574 version "0.0.45"
583 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" 575 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
584 integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== 576 integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
@@ -614,15 +606,6 @@ @@ -614,15 +606,6 @@
614 dependencies: 606 dependencies:
615 "@types/node" "*" 607 "@types/node" "*"
616 608
617 -"@types/html-minifier@^4.0.0":  
618 - version "4.0.0"  
619 - resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.0.tgz#2065cb9944f2d1b241146707c6935aa7b947d279"  
620 - integrity sha512-eFnGhrKmjWBlnSGNtunetE3UU2Tc/LUl92htFslSSTmpp9EKHQVcYQadCyYfnzUEFB5G/3wLWo/USQS/mEPKrA==  
621 - dependencies:  
622 - "@types/clean-css" "*"  
623 - "@types/relateurl" "*"  
624 - "@types/uglify-js" "*"  
625 -  
626 "@types/http-assert@*": 609 "@types/http-assert@*":
627 version "1.5.1" 610 version "1.5.1"
628 resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" 611 resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b"
@@ -712,9 +695,9 @@ @@ -712,9 +695,9 @@
712 integrity sha512-OlwyyyoY81P8f7FU0zILUPxqQQ3/W+CwbqI6dWvOxaH8w948fAl1+hOG9C9ZgJcwzG+aloJcsastY4c4p91R1Q== 695 integrity sha512-OlwyyyoY81P8f7FU0zILUPxqQQ3/W+CwbqI6dWvOxaH8w948fAl1+hOG9C9ZgJcwzG+aloJcsastY4c4p91R1Q==
713 696
714 "@types/node@*": 697 "@types/node@*":
715 - version "14.14.3"  
716 - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.3.tgz#e1c09064121f894baaad2bd9f12ce4a41bffb274"  
717 - integrity sha512-33/L34xS7HVUx23e0wOT2V1qPF1IrHgQccdJVm9uXGTB9vFBrrzBtkQymT8VskeKOxjz55MSqMv0xuLq+u98WQ== 698 + version "14.14.5"
  699 + resolved "https://registry.npmjs.org/@types/node/-/node-14.14.5.tgz#e92d3b8f76583efa26c1a63a21c9d3c1143daa29"
  700 + integrity sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw==
718 701
719 "@types/normalize-package-data@^2.4.0": 702 "@types/normalize-package-data@^2.4.0":
720 version "2.4.0" 703 version "2.4.0"
@@ -748,11 +731,6 @@ @@ -748,11 +731,6 @@
748 resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 731 resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
749 integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 732 integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
750 733
751 -"@types/relateurl@*":  
752 - version "0.2.28"  
753 - resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6"  
754 - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y=  
755 -  
756 "@types/resolve@1.17.1": 734 "@types/resolve@1.17.1":
757 version "1.17.1" 735 version "1.17.1"
758 resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" 736 resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -776,13 +754,6 @@ @@ -776,13 +754,6 @@
776 "@types/mime" "*" 754 "@types/mime" "*"
777 "@types/node" "*" 755 "@types/node" "*"
778 756
779 -"@types/uglify-js@*":  
780 - version "3.11.0"  
781 - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.0.tgz#2868d405cc45cd9dc3069179052103032c33afbc"  
782 - integrity sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q==  
783 - dependencies:  
784 - source-map "^0.6.1"  
785 -  
786 "@types/unist@^2.0.0", "@types/unist@^2.0.2": 757 "@types/unist@^2.0.0", "@types/unist@^2.0.2":
787 version "2.0.3" 758 version "2.0.3"
788 resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" 759 resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
@@ -1422,13 +1393,13 @@ callsites@^3.0.0: @@ -1422,13 +1393,13 @@ callsites@^3.0.0:
1422 resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 1393 resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1423 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 1394 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1424 1395
1425 -camel-case@^3.0.0:  
1426 - version "3.0.0"  
1427 - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"  
1428 - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= 1396 +camel-case@^4.1.1:
  1397 + version "4.1.1"
  1398 + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547"
  1399 + integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==
1429 dependencies: 1400 dependencies:
1430 - no-case "^2.2.0"  
1431 - upper-case "^1.1.1" 1401 + pascal-case "^3.1.1"
  1402 + tslib "^1.10.0"
1432 1403
1433 camelcase-keys@^2.0.0: 1404 camelcase-keys@^2.0.0:
1434 version "2.1.0" 1405 version "2.1.0"
@@ -1571,7 +1542,7 @@ class-utils@^0.3.5: @@ -1571,7 +1542,7 @@ class-utils@^0.3.5:
1571 isobject "^3.0.0" 1542 isobject "^3.0.0"
1572 static-extend "^0.1.1" 1543 static-extend "^0.1.1"
1573 1544
1574 -clean-css@^4.2.1, clean-css@^4.2.3: 1545 +clean-css@^4.2.3:
1575 version "4.2.3" 1546 version "4.2.3"
1576 resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" 1547 resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
1577 integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== 1548 integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
@@ -1724,11 +1695,16 @@ commander@*, commander@^6.0.0: @@ -1724,11 +1695,16 @@ commander@*, commander@^6.0.0:
1724 resolved "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" 1695 resolved "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75"
1725 integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== 1696 integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
1726 1697
1727 -commander@^2.19.0, commander@^2.20.0: 1698 +commander@^2.20.0:
1728 version "2.20.3" 1699 version "2.20.3"
1729 resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1700 resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
1730 integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1701 integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
1731 1702
  1703 +commander@^4.1.1:
  1704 + version "4.1.1"
  1705 + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
  1706 + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
  1707 +
1732 commander@~2.14.1: 1708 commander@~2.14.1:
1733 version "2.14.1" 1709 version "2.14.1"
1734 resolved "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" 1710 resolved "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
@@ -2318,6 +2294,14 @@ domutils@^1.5.1: @@ -2318,6 +2294,14 @@ domutils@^1.5.1:
2318 dom-serializer "0" 2294 dom-serializer "0"
2319 domelementtype "1" 2295 domelementtype "1"
2320 2296
  2297 +dot-case@^3.0.3:
  2298 + version "3.0.3"
  2299 + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa"
  2300 + integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==
  2301 + dependencies:
  2302 + no-case "^3.0.3"
  2303 + tslib "^1.10.0"
  2304 +
2321 dot-prop@^5.1.0: 2305 dot-prop@^5.1.0:
2322 version "5.3.0" 2306 version "5.3.0"
2323 resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" 2307 resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -2500,12 +2484,12 @@ eslint-visitor-keys@^2.0.0: @@ -2500,12 +2484,12 @@ eslint-visitor-keys@^2.0.0:
2500 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== 2484 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
2501 2485
2502 eslint@^7.12.0: 2486 eslint@^7.12.0:
2503 - version "7.12.0"  
2504 - resolved "https://registry.npmjs.org/eslint/-/eslint-7.12.0.tgz#7b6a85f87a9adc239e979bb721cde5ce0dc27da6"  
2505 - integrity sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA== 2487 + version "7.12.1"
  2488 + resolved "https://registry.npmjs.org/eslint/-/eslint-7.12.1.tgz#bd9a81fa67a6cfd51656cdb88812ce49ccec5801"
  2489 + integrity sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg==
2506 dependencies: 2490 dependencies:
2507 "@babel/code-frame" "^7.0.0" 2491 "@babel/code-frame" "^7.0.0"
2508 - "@eslint/eslintrc" "^0.2.0" 2492 + "@eslint/eslintrc" "^0.2.1"
2509 ajv "^6.10.0" 2493 ajv "^6.10.0"
2510 chalk "^4.0.0" 2494 chalk "^4.0.0"
2511 cross-spawn "^7.0.2" 2495 cross-spawn "^7.0.2"
@@ -3265,18 +3249,18 @@ hosted-git-info@^2.1.4: @@ -3265,18 +3249,18 @@ hosted-git-info@^2.1.4:
3265 resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" 3249 resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
3266 integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 3250 integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
3267 3251
3268 -html-minifier@^4.0.0:  
3269 - version "4.0.0"  
3270 - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56"  
3271 - integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== 3252 +html-minifier-terser@^5.1.1:
  3253 + version "5.1.1"
  3254 + resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
  3255 + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
3272 dependencies: 3256 dependencies:
3273 - camel-case "^3.0.0"  
3274 - clean-css "^4.2.1"  
3275 - commander "^2.19.0" 3257 + camel-case "^4.1.1"
  3258 + clean-css "^4.2.3"
  3259 + commander "^4.1.1"
3276 he "^1.2.0" 3260 he "^1.2.0"
3277 - param-case "^2.1.1" 3261 + param-case "^3.0.3"
3278 relateurl "^0.2.7" 3262 relateurl "^0.2.7"
3279 - uglify-js "^3.5.1" 3263 + terser "^4.6.3"
3280 3264
3281 html-tags@^3.1.0: 3265 html-tags@^3.1.0:
3282 version "3.1.0" 3266 version "3.1.0"
@@ -4298,10 +4282,12 @@ loud-rejection@^1.0.0: @@ -4298,10 +4282,12 @@ loud-rejection@^1.0.0:
4298 currently-unhandled "^0.4.1" 4282 currently-unhandled "^0.4.1"
4299 signal-exit "^3.0.0" 4283 signal-exit "^3.0.0"
4300 4284
4301 -lower-case@^1.1.1:  
4302 - version "1.1.4"  
4303 - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"  
4304 - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= 4285 +lower-case@^2.0.1:
  4286 + version "2.0.1"
  4287 + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7"
  4288 + integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==
  4289 + dependencies:
  4290 + tslib "^1.10.0"
4305 4291
4306 lru-cache@^5.1.1: 4292 lru-cache@^5.1.1:
4307 version "5.1.1" 4293 version "5.1.1"
@@ -4650,12 +4636,13 @@ neo-async@^2.6.0: @@ -4650,12 +4636,13 @@ neo-async@^2.6.0:
4650 resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 4636 resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
4651 integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 4637 integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
4652 4638
4653 -no-case@^2.2.0:  
4654 - version "2.3.2"  
4655 - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"  
4656 - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== 4639 +no-case@^3.0.3:
  4640 + version "3.0.3"
  4641 + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8"
  4642 + integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==
4657 dependencies: 4643 dependencies:
4658 - lower-case "^1.1.1" 4644 + lower-case "^2.0.1"
  4645 + tslib "^1.10.0"
4659 4646
4660 node-emoji@^1.10.0: 4647 node-emoji@^1.10.0:
4661 version "1.10.0" 4648 version "1.10.0"
@@ -4902,12 +4889,13 @@ p-try@^2.0.0: @@ -4902,12 +4889,13 @@ p-try@^2.0.0:
4902 resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 4889 resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
4903 integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 4890 integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
4904 4891
4905 -param-case@^2.1.1:  
4906 - version "2.1.1"  
4907 - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"  
4908 - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= 4892 +param-case@^3.0.3:
  4893 + version "3.0.3"
  4894 + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238"
  4895 + integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==
4909 dependencies: 4896 dependencies:
4910 - no-case "^2.2.0" 4897 + dot-case "^3.0.3"
  4898 + tslib "^1.10.0"
4911 4899
4912 parent-module@^1.0.0: 4900 parent-module@^1.0.0:
4913 version "1.0.1" 4901 version "1.0.1"
@@ -4968,6 +4956,14 @@ parseurl@^1.3.2: @@ -4968,6 +4956,14 @@ parseurl@^1.3.2:
4968 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 4956 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
4969 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 4957 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
4970 4958
  4959 +pascal-case@^3.1.1:
  4960 + version "3.1.1"
  4961 + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f"
  4962 + integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==
  4963 + dependencies:
  4964 + no-case "^3.0.3"
  4965 + tslib "^1.10.0"
  4966 +
4971 pascalcase@^0.1.1: 4967 pascalcase@^0.1.1:
4972 version "0.1.1" 4968 version "0.1.1"
4973 resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 4969 resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -5807,9 +5803,9 @@ run-async@^2.2.0: @@ -5807,9 +5803,9 @@ run-async@^2.2.0:
5807 integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 5803 integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
5808 5804
5809 run-parallel@^1.1.9: 5805 run-parallel@^1.1.9:
5810 - version "1.1.9"  
5811 - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"  
5812 - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== 5806 + version "1.1.10"
  5807 + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
  5808 + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
5813 5809
5814 rxjs@^6.4.0, rxjs@^6.6.2: 5810 rxjs@^6.4.0, rxjs@^6.6.2:
5815 version "6.6.3" 5811 version "6.6.3"
@@ -6025,7 +6021,7 @@ source-map-resolve@^0.5.0: @@ -6025,7 +6021,7 @@ source-map-resolve@^0.5.0:
6025 source-map-url "^0.4.0" 6021 source-map-url "^0.4.0"
6026 urix "^0.1.0" 6022 urix "^0.1.0"
6027 6023
6028 -source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.19: 6024 +source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.12, source-map-support@~0.5.19:
6029 version "0.5.19" 6025 version "0.5.19"
6030 resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 6026 resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
6031 integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 6027 integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
@@ -6043,7 +6039,7 @@ source-map@^0.5.0, source-map@^0.5.6: @@ -6043,7 +6039,7 @@ source-map@^0.5.0, source-map@^0.5.6:
6043 resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 6039 resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
6044 integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 6040 integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
6045 6041
6046 -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: 6042 +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
6047 version "0.6.1" 6043 version "0.6.1"
6048 resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 6044 resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
6049 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 6045 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -6507,6 +6503,15 @@ tempfile@^3.0.0: @@ -6507,6 +6503,15 @@ tempfile@^3.0.0:
6507 temp-dir "^2.0.0" 6503 temp-dir "^2.0.0"
6508 uuid "^3.3.2" 6504 uuid "^3.3.2"
6509 6505
  6506 +terser@^4.6.3:
  6507 + version "4.8.0"
  6508 + resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
  6509 + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
  6510 + dependencies:
  6511 + commander "^2.20.0"
  6512 + source-map "~0.6.1"
  6513 + source-map-support "~0.5.12"
  6514 +
6510 terser@^5.0.0: 6515 terser@^5.0.0:
6511 version "5.3.8" 6516 version "5.3.8"
6512 resolved "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" 6517 resolved "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd"
@@ -6711,7 +6716,7 @@ typescript@^4.0.5: @@ -6711,7 +6716,7 @@ typescript@^4.0.5:
6711 resolved "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" 6716 resolved "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
6712 integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== 6717 integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
6713 6718
6714 -uglify-js@^3.1.4, uglify-js@^3.5.1: 6719 +uglify-js@^3.1.4:
6715 version "3.11.4" 6720 version "3.11.4"
6716 resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.4.tgz#b47b7ae99d4bd1dca65b53aaa69caa0909e6fadf" 6721 resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.4.tgz#b47b7ae99d4bd1dca65b53aaa69caa0909e6fadf"
6717 integrity sha512-FyYnoxVL1D6+jDGQpbK5jW6y/2JlVfRfEeQ67BPCUg5wfCjaKOpr2XeceE4QL+MkhxliLtf5EbrMDZgzpt2CNw== 6722 integrity sha512-FyYnoxVL1D6+jDGQpbK5jW6y/2JlVfRfEeQ67BPCUg5wfCjaKOpr2XeceE4QL+MkhxliLtf5EbrMDZgzpt2CNw==
@@ -6817,11 +6822,6 @@ unset-value@^1.0.0: @@ -6817,11 +6822,6 @@ unset-value@^1.0.0:
6817 has-value "^0.3.1" 6822 has-value "^0.3.1"
6818 isobject "^3.0.0" 6823 isobject "^3.0.0"
6819 6824
6820 -upper-case@^1.1.1:  
6821 - version "1.1.3"  
6822 - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"  
6823 - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=  
6824 -  
6825 uri-js@^4.2.2: 6825 uri-js@^4.2.2:
6826 version "4.4.0" 6826 version "4.4.0"
6827 resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" 6827 resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
@@ -6898,6 +6898,14 @@ vfile@^4.0.0: @@ -6898,6 +6898,14 @@ vfile@^4.0.0:
6898 unist-util-stringify-position "^2.0.0" 6898 unist-util-stringify-position "^2.0.0"
6899 vfile-message "^2.0.0" 6899 vfile-message "^2.0.0"
6900 6900
  6901 +vite-plugin-html@^1.0.0-beta.2:
  6902 + version "1.0.0-beta.2"
  6903 + resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-1.0.0-beta.2.tgz#f30cdba4ca70469e62b770e32c407ce5d7f9b544"
  6904 + integrity sha512-8d/jMcs4tI4Oyf7mG8VAArT9afJhbRbw/jljRutHBluUWgr4rzZsVpEsQIqnqbuElU5AECdovlLI52D50pE/OQ==
  6905 + dependencies:
  6906 + html-minifier-terser "^5.1.1"
  6907 + lodash "^4.17.20"
  6908 +
6901 vite-plugin-mock@^1.0.4: 6909 vite-plugin-mock@^1.0.4:
6902 version "1.0.4" 6910 version "1.0.4"
6903 resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.4.tgz#56631559afcd77046b058f162b2b5e8f5aaa7b17" 6911 resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.4.tgz#56631559afcd77046b058f162b2b5e8f5aaa7b17"