From 8a1bfdf13de966acc5eb41718ccb085d3efc4581 Mon Sep 17 00:00:00 2001 From: vben Date: Fri, 16 Oct 2020 22:03:44 +0800 Subject: [PATCH] feat: auto import route --- .env.development | 9 +- .env.production | 7 +- CHANGELOG.zh_CN.md | 25 ++ README.en-US.md | 11 +- README.md | 17 +- build/gzip/index.ts | 22 - build/plugin/gzip/compress.ts | 36 ++ build/plugin/gzip/index.ts | 195 +++++++++ build/{ => plugin}/gzip/types.ts | 0 .../vite-plugin-context-plugin/transform.ts | 3 +- build/script/build.ts | 2 + build/script/preview.ts | 7 +- build/utils.ts | 8 + package.json | 2 +- src/components/Menu/src/BasicMenu.tsx | 2 +- .../Transition/src/ExpandTransition.ts | 4 +- src/router/menus/index.ts | 53 +-- src/router/routes/index.ts | 46 ++- vite.config.ts | 43 +- yarn.lock | 379 +++++++----------- 20 files changed, 530 insertions(+), 341 deletions(-) delete mode 100644 build/gzip/index.ts create mode 100644 build/plugin/gzip/compress.ts create mode 100644 build/plugin/gzip/index.ts rename build/{ => plugin}/gzip/types.ts (100%) diff --git a/.env.development b/.env.development index 1dfb16a4..30f6b362 100644 --- a/.env.development +++ b/.env.development @@ -4,11 +4,14 @@ VITE_USE_MOCK = true # public path VITE_PUBLIC_PATH = / +# Cross-domain proxy, you can configure multiple +VITE_PROXY=[["/api","http://localhost:3000"]] + +# Delete console +VITE_DROP_CONSOLE = false + # Basic interface address SPA VITE_GLOB_API_URL=/api # Interface prefix VITE_GLOB_API_URL_PREFIX= - -# Cross-domain proxy, you can configure multiple -VITE_PROXY=[["/api","http://localhost:3000"]] diff --git a/.env.production b/.env.production index d0a2a6b3..5509f1bc 100644 --- a/.env.production +++ b/.env.production @@ -4,12 +4,17 @@ VITE_USE_MOCK = true # public path VITE_PUBLIC_PATH = ./ +# Delete console +VITE_DROP_CONSOLE = true + +# Delete console +VITE_BUILD_GZIP = false + # Basic interface address SPA VITE_GLOB_API_URL=/api # Interface prefix VITE_GLOB_API_URL_PREFIX= - # TODO use Cdn VITE_USE_CDN = true diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 8a9d291c..8244526f 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,3 +1,28 @@ +# wip + +### ✨ Features + +- 打包可以配置输出`gizp` +- 打包可以配置删除`console` +- 路由及菜单不需要在手动引入,改为自动引入 + +### 🎫 Chores + +- 升级 vue 到`3.0.1` +- 将`vite`版本改为每日构建版本 + +### 🐛 Bug Fixes + +- 修复菜单报错 +- 修复表格自适应高度问题 +- 修复`window系统`执行 script 报错问题 + +### ⚡ Performance Improvements + +- 删除菜单最小化背景 +- 阻止页面刷新重新渲染菜单 +- 其他一些细节优化 + # 2.0.0-rc.1 (2020-10-14) ### ✨ Features diff --git a/README.en-US.md b/README.en-US.md index 0f487362..539a0885 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -92,7 +92,6 @@ The documentation for 2.0 hasn't started yet, it will be provided later. - [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - Mock plugin base on vite - [vue-i18n](https://github.com/intlify/vue-i18n-next) - Internationalization - [lodash-es](https://github.com/lodash/lodash) - JavaScript utility library -- [moment](https://github.com/moment/moment) - Time operation library - [axios](https://github.com/axios/axios) - Http data interaction - [TypeScript](https://www.typescriptlang.org/) @@ -225,6 +224,7 @@ yarn clean:lib # Delete node_modules, supported window - [x] Digital animation - [x] First screen loading waiting animation - [x] Extract the production environment profile +- [x] Build Gzip ## Developing features @@ -234,7 +234,6 @@ yarn clean:lib # Delete node_modules, supported window - [ ] Global error handling - [ ] Theme configuration - [ ] Dark theme -- [ ] Build Gzip - [ ] Build CDN - [ ] System performance optimization @@ -246,6 +245,8 @@ It is recommended to use the `Chrome` browser for local development. Development Support modern browsers, Not currently supported ie11,Follow-up consideration support ie11 -| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | -| :-: | :-: | :-: | :-: | -| Not currently supported | last 2 versions | last 2 versions | last 2 versions | +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :-: | :-: | :-: | :-: | :-: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module) diff --git a/README.md b/README.md index e193fb93..22807eb2 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,6 @@ ## 介绍 -该分支为 2.0 新分支,使用 vue3 进行开发。 - -1.0 分支请切换到`master`分支。1.0 采用`vue2.6`+`vue-composition-api`+`vue-cli`开发 - 项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tsx`实现的 vue3 风格的后台管理系统, ## gitHub 地址 @@ -65,7 +61,7 @@ ## 文档 -2.0 文档还没开始写。后续补上。 +2.0 文档很快完成,请耐心等待。 ## 预安装 @@ -93,7 +89,6 @@ - [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - 基于 vite 的 mock 插件. - [vue-i18n](https://github.com/intlify/vue-i18n-next) - 国际化 - [lodash-es](https://github.com/lodash/lodash) - JavaScript 实用程序库 -- [moment](https://github.com/moment/moment) - 时间操作库 - [axios](https://github.com/axios/axios) - Http 数据交互 - [TypeScript](https://www.typescriptlang.org/) @@ -227,6 +222,7 @@ yarn clean:lib # 删除node_modules,兼容window系统 - [x] 数字动画 - [x] 首屏加载等待动画 - [x] 抽取生产环境配置文件 +- [x] 打包 Gzip ## 正在开发的功能 @@ -236,7 +232,6 @@ yarn clean:lib # 删除node_modules,兼容window系统 - [ ] 全局错误处理 - [ ] 主题配置 - [ ] 黑暗主题 -- [ ] 打包 Gzip - [ ] 打包 CDN - [ ] 系统性能优化 @@ -248,9 +243,11 @@ yarn clean:lib # 删除node_modules,兼容window系统 支持现代浏览器, IE 暂不支持,后续考虑支持 ie11 -| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | -| :-: | :-: | :-: | :-: | -| not support | last 2 versions | last 2 versions | last 2 versions | +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :-: | :-: | :-: | :-: | :-: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module) ## 加入我们 diff --git a/build/gzip/index.ts b/build/gzip/index.ts deleted file mode 100644 index 79a81bc7..00000000 --- a/build/gzip/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Build gzip after packaging -// import { readFile, writeFile } from 'fs'; -import viteConfig from '../../vite.config'; -import { - // basename, - join, -} from 'path'; -// import { promisify } from 'util'; -// import { gzip, ZlibOptions } from 'zlib'; -import { readAllFile } from '../utils'; - -// const readFilePromise = promisify(readFile); -// const writeFilePromise = promisify(writeFile); - -// function createGzip() {} - -const FILE_REG = /\.(js|mjs|json|css|html)$/; - -const OUT_DIR = viteConfig.outDir || 'dist'; - -// TODO 待开发 -const files = readAllFile(join(process.cwd(), OUT_DIR), FILE_REG); diff --git a/build/plugin/gzip/compress.ts b/build/plugin/gzip/compress.ts new file mode 100644 index 00000000..a9d64bc5 --- /dev/null +++ b/build/plugin/gzip/compress.ts @@ -0,0 +1,36 @@ +import { gzip } from 'zlib'; +import { readFileSync, writeFileSync } from 'fs'; +import { GzipPluginOptions } from './types'; +import viteConfig from '../../vite.config'; +import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../utils'; + +export function startGzip( + fileContent: string | Buffer, + options: GzipPluginOptions = {} +): Promise { + return new Promise((resolve, reject) => { + gzip(fileContent, options.gzipOptions || {}, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); +} + +// 手动压缩css +export async function startGzipStyle() { + if (isBuildGzip() || isSiteMode()) { + const outDir = viteConfig.outDir || 'dist'; + const assets = viteConfig.assetsDir || '_assets'; + const allCssFile = readAllFile(getCwdPath(outDir, assets), /\.(css)$/); + for (const path of allCssFile) { + const source = readFileSync(path); + const content = await startGzip(source); + const ds = path.split('/'); + const fileName = ds[ds.length - 1]; + writeFileSync(getCwdPath(outDir, assets, `${fileName}.gz`), content); + } + } +} diff --git a/build/plugin/gzip/index.ts b/build/plugin/gzip/index.ts new file mode 100644 index 00000000..481aad9b --- /dev/null +++ b/build/plugin/gzip/index.ts @@ -0,0 +1,195 @@ +// 修改自https://github.com/kryops/rollup-plugin-gzip +// 因为rollup-plugin-gzip不支持vite +// vite对css打包独立的。所以不能在打包的时候顺带打包css + +import { readFile, writeFile } from 'fs'; +import { basename } from 'path'; +import { promisify } from 'util'; +import { gzip } from 'zlib'; + +import { OutputAsset, OutputChunk, OutputOptions, Plugin } from 'rollup'; +import { GzipPluginOptions } from './types'; + +const isFunction = (arg: unknown): arg is (...args: any[]) => any => typeof arg === 'function'; +const isRegExp = (arg: unknown): arg is RegExp => + Object.prototype.toString.call(arg) === '[object RegExp]'; + +export type StringMappingOption = (originalString: string) => string; +export type CustomCompressionOption = ( + content: string | Buffer +) => string | Buffer | Promise; + +const readFilePromise = promisify(readFile); +const writeFilePromise = promisify(writeFile); + +// functionality partially copied from rollup + +/** + * copied from https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L450 + */ +function isOutputChunk(file: OutputAsset | OutputChunk): file is OutputChunk { + return typeof (file as OutputChunk).code === 'string'; +} + +/** + * Gets the string/buffer content from a file object. + * Important for adding source map comments + * + * Copied partially from rollup.writeOutputFile + * https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L454 + */ +function getOutputFileContent( + outputFileName: string, + outputFile: OutputAsset | OutputChunk, + outputOptions: OutputOptions +): string | Buffer { + if (isOutputChunk(outputFile)) { + let source: string | Buffer; + source = outputFile.code; + if (outputOptions.sourcemap && outputFile.map) { + const url = + outputOptions.sourcemap === 'inline' + ? outputFile.map.toUrl() + : `${basename(outputFileName)}.map`; + + // https://github.com/rollup/rollup/blob/master/src/utils/sourceMappingURL.ts#L1 + source += `//# source` + `MappingURL=${url}\n`; + } + return source; + } else { + return typeof outputFile.source === 'string' + ? outputFile.source + : // just to be sure, as it is typed string | Uint8Array in rollup 2.0.0 + Buffer.from(outputFile.source); + } +} + +// actual plugin code + +function gzipPlugin(options: GzipPluginOptions = {}): Plugin { + // check for old options + if ('algorithm' in options) { + console.warn( + '[rollup-plugin-gzip] The "algorithm" option is not supported any more! ' + + 'Use "customCompression" instead to specify a different compression algorithm.' + ); + } + if ('options' in options) { + console.warn('[rollup-plugin-gzip] The "options" option was renamed to "gzipOptions"!'); + } + if ('additional' in options) { + console.warn('[rollup-plugin-gzip] The "additional" option was renamed to "additionalFiles"!'); + } + if ('delay' in options) { + console.warn('[rollup-plugin-gzip] The "delay" option was renamed to "additionalFilesDelay"!'); + } + + const compressGzip: CustomCompressionOption = (fileContent) => { + return new Promise((resolve, reject) => { + gzip(fileContent, options.gzipOptions || {}, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + }; + + const doCompress = options.customCompression || compressGzip; + + const mapFileName: StringMappingOption = isFunction(options.fileName) + ? (options.fileName as StringMappingOption) + : (fileName: string) => fileName + (options.fileName || '.gz'); + + const plugin: Plugin = { + name: 'gzip', + + generateBundle(outputOptions, bundle) { + return Promise.all( + Object.keys(bundle) + .map((fileName) => { + const fileEntry = bundle[fileName]; + + // file name filter option check + + const fileNameFilter = options.filter || /\.(js|mjs|json|css|html)$/; + + if (isRegExp(fileNameFilter) && !fileName.match(fileNameFilter)) { + return Promise.resolve(); + } + + if ( + isFunction(fileNameFilter) && + !(fileNameFilter as (x: string) => boolean)(fileName) + ) { + return Promise.resolve(); + } + + const fileContent = getOutputFileContent(fileName, fileEntry, outputOptions); + + // minSize option check + if (options.minSize && options.minSize > fileContent.length) { + return Promise.resolve(); + } + + return Promise.resolve(doCompress(fileContent)) + .then((compressedContent) => { + const compressedFileName = mapFileName(fileName); + bundle[compressedFileName] = { + type: 'asset', // Rollup >= 1.21 + name: compressedFileName, + fileName: compressedFileName, + isAsset: true, // Rollup < 1.21 + source: compressedContent, + }; + }) + .catch((err: any) => { + console.error(err); + return Promise.reject('[rollup-plugin-gzip] Error compressing file ' + fileName); + }); + }) + .concat([ + (() => { + if (!options.additionalFiles || !options.additionalFiles.length) + return Promise.resolve(); + + const compressAdditionalFiles = () => + Promise.all( + options.additionalFiles!.map((filePath) => + readFilePromise(filePath) + .then((fileContent) => doCompress(fileContent)) + .then((compressedContent) => { + return writeFilePromise(mapFileName(filePath), compressedContent); + }) + .catch(() => { + return Promise.reject( + '[rollup-plugin-gzip] Error compressing additional file ' + + filePath + + '. Please check the spelling of your configured additionalFiles. ' + + 'You might also have to increase the value of the additionalFilesDelay option.' + ); + }) + ) + ) as Promise; + + // additional files can be processed outside of rollup after a delay + // for older plugins or plugins that write to disk (curcumventing rollup) without awaiting + const additionalFilesDelay = options.additionalFilesDelay || 0; + + if (additionalFilesDelay) { + setTimeout(compressAdditionalFiles, additionalFilesDelay); + return Promise.resolve(); + } else { + return compressAdditionalFiles(); + } + })(), + ]) + ) as Promise; + }, + }; + + return plugin; +} + +export default gzipPlugin; diff --git a/build/gzip/types.ts b/build/plugin/gzip/types.ts similarity index 100% rename from build/gzip/types.ts rename to build/plugin/gzip/types.ts diff --git a/build/plugin/vite-plugin-context-plugin/transform.ts b/build/plugin/vite-plugin-context-plugin/transform.ts index 5ef211b3..84aa8f23 100644 --- a/build/plugin/vite-plugin-context-plugin/transform.ts +++ b/build/plugin/vite-plugin-context-plugin/transform.ts @@ -49,8 +49,9 @@ const globbyTransform = function (config: SharedConfig): Transform { let result = cache.get(path); if (!result) { const reg = /import\s+([\w\s{}*]+)\s+from\s+(['"])globby(\?path)?!([^'"]+)\2/g; - const lastImport = urlMap.get(path); const match = code.match(reg); + if (!match) return code; + const lastImport = urlMap.get(path); if (lastImport && match) { code = code.replace(lastImport, match[0]); } diff --git a/build/script/build.ts b/build/script/build.ts index 9b1a2827..dcc4a3da 100644 --- a/build/script/build.ts +++ b/build/script/build.ts @@ -6,6 +6,7 @@ import { argv } from 'yargs'; import { runBuildConfig } from './buildConf'; import { runUpdateHtml } from './updateHtml'; import { errorConsole, successConsole } from '../utils'; +import { startGzipStyle } from '../plugin/gzip/compress'; export const runBuild = async () => { try { @@ -22,6 +23,7 @@ export const runBuild = async () => { await runBuildConfig(); } await runUpdateHtml(); + await startGzipStyle(); successConsole('Vite Build successfully!'); } catch (error) { errorConsole('Vite Build Error\n' + error); diff --git a/build/script/preview.ts b/build/script/preview.ts index 2ca2ca53..ff52143d 100644 --- a/build/script/preview.ts +++ b/build/script/preview.ts @@ -1,12 +1,12 @@ import chalk from 'chalk'; import Koa from 'koa'; import inquirer from 'inquirer'; -import { sh } from 'tasksfile'; import staticServer from 'koa-static'; import portfinder from 'portfinder'; import { resolve } from 'path'; import viteConfig from '../../vite.config'; import { getIPAddress } from '../utils'; +import { runBuild } from './build'; const BUILD = 1; const NO_BUILD = 2; @@ -53,10 +53,7 @@ export const runPreview = async () => { }); const { type } = await prompt; if (type === BUILD) { - await sh('npm run build', { - async: true, - nopipe: true, - }); + runBuild(); } startApp(); }; diff --git a/build/utils.ts b/build/utils.ts index d6902230..f3da70df 100644 --- a/build/utils.ts +++ b/build/utils.ts @@ -70,6 +70,12 @@ export function isProdFn(): boolean { export function isReportMode(): boolean { return process.env.REPORT === 'true'; } +export function isBuildGzip(): boolean { + return process.env.VITE_BUILD_GZIP === 'true'; +} +export function isSiteMode(): boolean { + return process.env.SITE === 'true'; +} export interface ViteEnv { VITE_PORT: number; @@ -78,6 +84,8 @@ export interface ViteEnv { VITE_PROXY: [string, string][]; VITE_GLOB_APP_TITLE: string; VITE_USE_CDN: boolean; + VITE_DROP_CONSOLE: boolean; + VITE_BUILD_GZIP: boolean; } export function loadEnv(): ViteEnv { diff --git a/package.json b/package.json index 3254befd..884aa2bf 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "tasksfile": "^5.1.1", "ts-node": "^9.0.0", "typescript": "^4.0.3", - "vite": "^1.0.0-rc.4", + "vite": "npm:@knightly/vite", "vite-plugin-mock": "^1.0.2", "vite-plugin-purge-icons": "^0.4.4", "vue-eslint-parser": "^7.1.1", diff --git a/src/components/Menu/src/BasicMenu.tsx b/src/components/Menu/src/BasicMenu.tsx index 217f1455..e656da46 100644 --- a/src/components/Menu/src/BasicMenu.tsx +++ b/src/components/Menu/src/BasicMenu.tsx @@ -91,7 +91,7 @@ export default defineComponent({ }); watch( - () => currentRoute.value.path, + () => currentRoute.value.name, (name: string) => { name !== 'Redirect' && handleMenuChange(); getParentPath(); diff --git a/src/components/Transition/src/ExpandTransition.ts b/src/components/Transition/src/ExpandTransition.ts index 88f02e39..6771c7a0 100644 --- a/src/components/Transition/src/ExpandTransition.ts +++ b/src/components/Transition/src/ExpandTransition.ts @@ -48,7 +48,9 @@ export default function (expandedParentClass = '', x = false) { if (expandedParentClass && el._parent) { el._parent.classList.add(expandedParentClass); } - + console.log('======================'); + console.log(sizeProperty, offset); + console.log('======================'); requestAnimationFrame(() => { el.style[sizeProperty] = offset; }); diff --git a/src/router/menus/index.ts b/src/router/menus/index.ts index 7600b619..7161b431 100644 --- a/src/router/menus/index.ts +++ b/src/router/menus/index.ts @@ -1,4 +1,4 @@ -import type { Menu } from '/@/router/types'; +import type { Menu, MenuModule } from '/@/router/types'; import type { RouteRecordNormalized } from 'vue-router'; import { appStore } from '/@/store/modules/app'; import { permissionStore } from '/@/store/modules/permission'; @@ -7,35 +7,40 @@ import { filter } from '/@/utils/helper/treeHelper'; import router from '/@/router'; import { PermissionModeEnum } from '/@/enums/appEnum'; import { pathToRegexp } from 'path-to-regexp'; +import modules from 'globby!/@/router/menus/modules/**/*.@(ts)'; // =========================== // ==========module import==== // =========================== -import dashboard from './modules/dashboard'; - -import exceptionDemo from './modules/demo/exception'; -import iframeDemo from './modules/demo/iframe'; -import compDemo from './modules/demo/comp'; -import permissionDemo from './modules/demo/permission'; -import featDemo from './modules/demo/feat'; -import chartsDemo from './modules/demo/charts'; -import tableDemo from './modules/demo/table'; -import formDemo from './modules/demo/form'; -import treeDemo from './modules/demo/tree'; - -const menuModules = [ - dashboard, - featDemo, - exceptionDemo, - iframeDemo, - compDemo, - permissionDemo, - chartsDemo, - tableDemo, - formDemo, - treeDemo, +// import dashboard from './modules/dashboard'; + +// import exceptionDemo from './modules/demo/exception'; +// import iframeDemo from './modules/demo/iframe'; +// import compDemo from './modules/demo/comp'; +// import permissionDemo from './modules/demo/permission'; +// import featDemo from './modules/demo/feat'; +// import chartsDemo from './modules/demo/charts'; +// import tableDemo from './modules/demo/table'; +// import formDemo from './modules/demo/form'; +// import treeDemo from './modules/demo/tree'; + +const menuModules: MenuModule[] = [ + // dashboard, + // featDemo, + // exceptionDemo, + // iframeDemo, + // compDemo, + // permissionDemo, + // chartsDemo, + // tableDemo, + // formDemo, + // treeDemo, ]; +Object.keys(modules).forEach((key) => { + menuModules.push(modules[key]); +}); + // =========================== // ==========Helper=========== // =========================== diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index 3c566739..5ea4d2ce 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -2,33 +2,37 @@ import type { AppRouteRecordRaw, AppRouteModule } from '/@/router/types'; import { DEFAULT_LAYOUT_COMPONENT, PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '../constant'; import { genRouteModule } from '/@/utils/helper/routeHelper'; +import modules from 'globby!/@/router/routes/modules/**/*.@(ts)'; -import dashboard from './modules/dashboard'; - +// import dashboard from './modules/dashboard'; // demo -import exceptionDemo from './modules/demo/exception'; -import iframeDemo from './modules/demo/iframe'; -import compDemo from './modules/demo/comp'; -import permissionDemo from './modules/demo/permission'; -import featDemo from './modules/demo/feat'; -import chartsDemo from './modules/demo/charts'; -import tableDemo from './modules/demo/table'; -import formDemo from './modules/demo/form'; -import treeDemo from './modules/demo/tree'; +// import exceptionDemo from './modules/demo/exception'; +// import iframeDemo from './modules/demo/iframe'; +// import compDemo from './modules/demo/comp'; +// import permissionDemo from './modules/demo/permission'; +// import featDemo from './modules/demo/feat'; +// import chartsDemo from './modules/demo/charts'; +// import tableDemo from './modules/demo/table'; +// import formDemo from './modules/demo/form'; +// import treeDemo from './modules/demo/tree'; const routeModuleList: AppRouteModule[] = [ - exceptionDemo, - dashboard, - iframeDemo, - compDemo, - featDemo, - permissionDemo, - chartsDemo, - tableDemo, - formDemo, - treeDemo, + // exceptionDemo, + // dashboard, + // iframeDemo, + // compDemo, + // featDemo, + // permissionDemo, + // chartsDemo, + // tableDemo, + // formDemo, + // treeDemo, ]; +Object.keys(modules).forEach((key) => { + routeModuleList.push(modules[key]); +}); + export const asyncRoutes = [ REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, diff --git a/vite.config.ts b/vite.config.ts index 73cc7d66..cac6f117 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -12,8 +12,10 @@ import { import { createProxy } from './build/config/vite/proxy'; import { createMockServer } from 'vite-plugin-mock'; import PurgeIcons from 'vite-plugin-purge-icons'; +import gzipPlugin from './build/plugin/gzip/index'; +import globbyTransform from './build/plugin/vite-plugin-context-plugin/transform'; -import { isDevFn, isReportMode, isProdFn, loadEnv } from './build/utils'; +import { isDevFn, isReportMode, isProdFn, loadEnv, isBuildGzip, isSiteMode } from './build/utils'; const pkg = require('./package.json'); const { @@ -22,6 +24,7 @@ const { VITE_PUBLIC_PATH, VITE_PROXY, VITE_GLOB_APP_TITLE, + VITE_DROP_CONSOLE, // VITE_USE_CDN, } = loadEnv(); @@ -33,12 +36,18 @@ const rollupPlugins: any[] = []; const vitePlugins: VitePlugin[] = []; (() => { - if (isReportMode() && isProdFn()) { - // report - rollupPlugins.push( - visualizer({ filename: './node_modules/.cache/stats.html', open: true }) as Plugin - ); + if (isProdFn()) { + if (isReportMode()) { + // report + rollupPlugins.push( + visualizer({ filename: './node_modules/.cache/stats.html', open: true }) as Plugin + ); + } + if (isBuildGzip() || isSiteMode()) { + rollupPlugins.push(gzipPlugin()); + } } + if (isDevFn() && VITE_USE_MOCK) { // open mock vitePlugins.push( @@ -99,14 +108,21 @@ const viteConfig: UserConfig = { assetsInlineLimit: 4096, /** * esbuild转换目标。 - * @default 'es2019' + * @default 'es2020' */ - esbuildTarget: 'es2019', + esbuildTarget: 'es2020', silent: false, // 别名 alias: { '/@/': pathResolve('src'), }, + // terser配置 + terserOption: { + compress: { + // 是否删除console + drop_console: VITE_DROP_CONSOLE, + }, + }, define: { __VERSION__: pkg.version, }, @@ -128,6 +144,7 @@ const viteConfig: UserConfig = { 'moment/locale/zh-cn', ], }, + // 本地跨域代理 proxy: createProxy(VITE_PROXY), @@ -140,8 +157,6 @@ const viteConfig: UserConfig = { }, }; -// 用于打包部署站点使用。实际项目可以删除 -const isSite = process.env.SITE === 'true'; // 扩展配置, 往打包后的html注入内容 // 只针对生产环境 // TODO 目前只是简单手动注入实现,后续vite应该会提供配置项 @@ -164,7 +179,8 @@ export const htmlConfig: { // html title title: VITE_GLOB_APP_TITLE, // 百度统计,不需要可以删除 - addHm: isSite, + // 用于打包部署站点使用。实际项目可以删除 + addHm: isSiteMode(), // 使用cdn打包 // TODO Cdn esm使用方式需要只能支持google,暂时关闭,后续查询更好的方式 useCdn: false, @@ -179,4 +195,7 @@ export const htmlConfig: { minifyCSS: true, }, }; -export default viteConfig; +export default { + ...viteConfig, + transforms: [globbyTransform(viteConfig)], +} as UserConfig; diff --git a/yarn.lock b/yarn.lock index 4924bfb6..b058d32d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,7 +34,7 @@ "@babel/runtime" "^7.10.4" lodash "^4.17.15" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== @@ -170,7 +170,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.9.4": +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5": version "7.11.5" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== @@ -460,39 +460,26 @@ dependencies: "@iconify/iconify" ">=2.0.0-rc.1" -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== +"@rollup/plugin-commonjs@^15.0.0": + version "15.1.0" + resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238" + integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ== dependencies: - "@rollup/pluginutils" "^3.0.8" + "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" -"@rollup/plugin-json@^4.0.3": +"@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== dependencies: "@rollup/pluginutils" "^3.0.8" -"@rollup/plugin-node-resolve@^8.4.0": - version "8.4.0" - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - "@rollup/plugin-node-resolve@^9.0.0": version "9.0.0" resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6" @@ -700,7 +687,7 @@ "@types/koa" "*" "@types/koa-send" "*" -"@types/koa@*", "@types/koa@^2.11.3": +"@types/koa@*": version "2.11.4" resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.4.tgz#8af02a069a9f8e08fa47b8da28d982e652f69cfb" integrity sha512-Etqs0kdqbuAsNr5k6mlZQelpZKVwMu9WPRHVVTLnceZlhr0pYmblRNJbCgoCMzKWWePldydU0AYEOX4Q9fnGUQ== @@ -714,6 +701,20 @@ "@types/koa-compose" "*" "@types/node" "*" +"@types/koa@^2.11.4": + version "2.11.5" + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.5.tgz#a2b81382bf65d72bdc3bd906abdee259fefdebc2" + integrity sha512-egP+ceD3+v9PnFW+DLTFO8mt6wa5sDqfGOBIwOAZ61Wzsq4bGZc5kMpJgcCwq7ARGIBfHBY+KkK/1RsMftV/qQ== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + "@types/lodash-es@^4.17.3": version "4.17.3" resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.3.tgz#87eb0b3673b076b8ee655f1890260a136af09a2d" @@ -935,17 +936,6 @@ "@typescript-eslint/types" "4.4.1" eslint-visitor-keys "^2.0.0" -"@vue/compiler-core@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz#25e4f079cf6c39f83bad23700f814c619105a0f2" - integrity sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ== - dependencies: - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" - "@vue/shared" "3.0.0" - estree-walker "^2.0.1" - source-map "^0.6.1" - "@vue/compiler-core@3.0.1": version "3.0.1" resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.1.tgz#3ce57531078c6220be7ea458e41e4bab3522015b" @@ -957,15 +947,7 @@ estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-dom@3.0.0", "@vue/compiler-dom@^3.0.0-rc.5": - version "3.0.0" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz#4cbb48fcf1f852daef2babcf9953b681ac463526" - integrity sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog== - dependencies: - "@vue/compiler-core" "3.0.0" - "@vue/shared" "3.0.0" - -"@vue/compiler-dom@3.0.1": +"@vue/compiler-dom@3.0.1", "@vue/compiler-dom@^3.0.0-rc.10": version "3.0.1" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.1.tgz#00b12f2e4aa55e624e2a5257e4bed93cf7555f0b" integrity sha512-8cjgswVU2YmV35H9ARZmSlDr1P9VZxUihRwefkrk6Vrsb7kui5C3d/WQ2/su34FSDpyMU1aacUOiL2CV/vdX6w== @@ -973,29 +955,7 @@ "@vue/compiler-core" "3.0.1" "@vue/shared" "3.0.1" -"@vue/compiler-sfc@^3.0.0-rc.5": - version "3.0.0" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0.tgz#efa38037984bd64aae315828aa5c1248c6eadca9" - integrity sha512-1Bn4L5jNRm6tlb79YwqYUGGe+Yc9PRoRSJi67NJX6icdhf84+tRMtESbx1zCLL9QixQXu2+7aLkXHxvh4RpqAA== - dependencies: - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" - "@vue/compiler-core" "3.0.0" - "@vue/compiler-dom" "3.0.0" - "@vue/compiler-ssr" "3.0.0" - "@vue/shared" "3.0.0" - consolidate "^0.16.0" - estree-walker "^2.0.1" - hash-sum "^2.0.0" - lru-cache "^5.1.1" - magic-string "^0.25.7" - merge-source-map "^1.1.0" - postcss "^7.0.32" - postcss-modules "^3.2.2" - postcss-selector-parser "^6.0.2" - source-map "^0.6.1" - -"@vue/compiler-sfc@^3.0.1": +"@vue/compiler-sfc@^3.0.0-rc.10", "@vue/compiler-sfc@^3.0.1": version "3.0.1" resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.1.tgz#f340f8f75b5c1c4509e0f3a12c79d1544899b663" integrity sha512-VO5gJ7SyHw0hf1rkKXRlxjXI9+Q4ngcuUWYnyjOSDch7Wtt2IdOEiC82KFWIkfWMpHqA5HPzL2nDmys3y9d19w== @@ -1017,14 +977,6 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-ssr@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0.tgz#d717abcd23a89fb38d1497228633a21bcf9a0e28" - integrity sha512-Er41F9ZFyKB3YnNbE6JSTIGCVWve3NAQimgDOk4uP42OnckxBYKGBTutDeFNeqUZBMu/9vRHYrxlGFC9Z5jBVQ== - dependencies: - "@vue/compiler-dom" "3.0.0" - "@vue/shared" "3.0.0" - "@vue/compiler-ssr@3.0.1": version "3.0.1" resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.1.tgz#0455b011d72d4ed02faa93610f14981c3d44a079" @@ -1063,15 +1015,6 @@ "@vue/reactivity" "3.0.1" "@vue/shared" "3.0.1" -"@vue/runtime-dom@3.0.0", "@vue/runtime-dom@^3.0.0-rc.1": - version "3.0.0" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz#e0d1f7c7e22e1318696014cc3501e06b288c2e11" - integrity sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g== - dependencies: - "@vue/runtime-core" "3.0.0" - "@vue/shared" "3.0.0" - csstype "^2.6.8" - "@vue/runtime-dom@3.0.1": version "3.0.1" resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.1.tgz#2cc74550a635f38eb5f61f35f374d5bdb55156b0" @@ -1081,6 +1024,15 @@ "@vue/shared" "3.0.1" csstype "^2.6.8" +"@vue/runtime-dom@^3.0.0-rc.1": + version "3.0.0" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz#e0d1f7c7e22e1318696014cc3501e06b288c2e11" + integrity sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g== + dependencies: + "@vue/runtime-core" "3.0.0" + "@vue/shared" "3.0.0" + csstype "^2.6.8" + "@vue/shared@3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz#ec089236629ecc0f10346b92f101ff4339169f1a" @@ -1226,7 +1178,7 @@ ant-design-vue@^2.0.0-beta.10: shallowequal "^1.0.2" warning "^4.0.0" -any-promise@^1.0.0, any-promise@^1.1.0: +any-promise@^1.1.0: version "1.3.0" resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -1644,14 +1596,6 @@ chalk@4.1.0, chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - character-entities-html4@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" @@ -1677,7 +1621,7 @@ chardet@^0.7.0: resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@^3.3.1, chokidar@^3.4.2: +chokidar@^3.4.2: version "3.4.2" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== @@ -1733,10 +1677,10 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.2.0: - version "2.4.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== +cli-spinners@^2.4.0: + version "2.5.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== cli-truncate@^2.1.0: version "2.1.0" @@ -2290,11 +2234,6 @@ deep-equal@~1.0.1: resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - deep-is@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -2540,12 +2479,12 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-module-lexer@^0.3.18: +es-module-lexer@^0.3.25: version "0.3.25" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.25.tgz#24a1abcb9c5dc96923a8e42be033b801f788de06" integrity sha512-H9VoFD5H9zEfiOX2LeTWDwMvAbLqcAyA2PIb40TOAvGpScOjit02oTGWgIh+M0rx2eJOKyJVM9wtpKFVgnyC3A== -esbuild@^0.6.10: +esbuild@^0.6.33: version "0.6.34" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.6.34.tgz#76565a60e006f45d5f273b6e59e61ed0816551f5" integrity sha512-InRdL/Q96pUucPqovJzvuLhquZr6jOn81FDVwFjCKz1rYKIm9OdOC+7Fs4vr6x48vKBl5LzKgtjU39BUpO636A== @@ -2734,7 +2673,7 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@^1.3.0, etag@^1.8.1: +etag@^1.8.1: version "1.8.1" resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= @@ -2744,7 +2683,7 @@ eventemitter3@^4.0.0: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -execa@^4.0.1, execa@^4.0.3: +execa@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== @@ -3173,7 +3112,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -3853,7 +3792,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-reference@^1.1.2: +is-reference@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== @@ -3958,13 +3897,14 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^26.2.1: + version "26.5.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" + integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" joycon@^2.2.5: version "2.2.5" @@ -4112,10 +4052,10 @@ koa-compose@^4.1.0: resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== -koa-conditional-get@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz#a43f3723c1d014b730a34ece8adf30b93c8233f2" - integrity sha1-pD83I8HQFLcwo07Oit8wuTyCM/I= +koa-conditional-get@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-3.0.0.tgz#552cb64a217dfb907e90b7c34f42009e441c4b8e" + integrity sha512-VKyPS7SuNH26TjTV2IRz+oh0HV/jc2lYAo51PTQTkj0XFn8ebNZW9riczmrW7ZVBFSnls1Z88DPUYKnvVymruA== koa-convert@^1.2.0: version "1.2.0" @@ -4125,13 +4065,12 @@ koa-convert@^1.2.0: co "^4.6.0" koa-compose "^3.0.0" -koa-etag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-3.0.0.tgz#9ef7382ddd5a82ab0deb153415c915836f771d3f" - integrity sha1-nvc4Ld1agqsN6xU0FckVg293HT8= +koa-etag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz#2c2bb7ae69ca1ac6ced09ba28dcb78523c810414" + integrity sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg== dependencies: - etag "^1.3.0" - mz "^2.1.0" + etag "^1.8.1" koa-proxies@^0.11.0: version "0.11.0" @@ -4141,7 +4080,7 @@ koa-proxies@^0.11.0: http-proxy "^1.16.2" path-match "^1.2.4" -koa-send@^5.0.0: +koa-send@^5.0.0, koa-send@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== @@ -4158,7 +4097,7 @@ koa-static@^5.0.0: debug "^3.1.0" koa-send "^5.0.0" -koa@^2.11.0: +koa@^2.13.0: version "2.13.0" resolved "https://registry.npmjs.org/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501" integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== @@ -4365,13 +4304,6 @@ lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17 resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - log-symbols@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" @@ -4426,7 +4358,14 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -magic-string@^0.25.2, magic-string@^0.25.7: +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -4712,15 +4651,6 @@ mute-stream@0.0.8: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.1.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - nanoid@^3.0.1: version "3.1.12" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" @@ -4905,7 +4835,7 @@ only@~0.0.2: resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= -open@^7.0.3: +open@^7.0.3, open@^7.2.1: version "7.3.0" resolved "https://registry.npmjs.org/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== @@ -4930,16 +4860,16 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^4.0.4: - version "4.1.1" - resolved "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== +ora@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== dependencies: - chalk "^3.0.0" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.2.0" + cli-spinners "^2.4.0" is-interactive "^1.0.0" - log-symbols "^3.0.0" + log-symbols "^4.0.0" mute-stream "0.0.8" strip-ansi "^6.0.0" wcwidth "^1.0.1" @@ -5381,7 +5311,7 @@ postcss-value-parser@^4.1.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.28, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.35" resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== @@ -5778,7 +5708,7 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -5830,7 +5760,7 @@ rollup-plugin-analyzer@^3.3.0: resolved "https://registry.npmjs.org/rollup-plugin-analyzer/-/rollup-plugin-analyzer-3.3.0.tgz#52fb30465ae927d9c078b6ec90c578cfb9164fc2" integrity sha512-zUPGitW4usmZcVa0nKecRvw3odtXgnxdCben9Hx1kxVoR3demek8RU9tmRG/R35hnRPQTb7wEsYEe3GUcjxIMA== -rollup-plugin-dynamic-import-variables@^1.0.1: +rollup-plugin-dynamic-import-variables@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a" integrity sha512-C1avEmnXC8cC4aAQ5dB63O9oQf7IrhEHc98bQw9Qd6H36FxtZooLCvVfcO4SNYrqaNrzH3ErucQt/zdFSLPHNw== @@ -5857,16 +5787,15 @@ rollup-plugin-purge-icons@^0.4.4: "@purge-icons/core" "^0.4.4" "@purge-icons/generated" "^0.4.1" -rollup-plugin-terser@^5.3.0: - version "5.3.1" - resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" - integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== dependencies: - "@babel/code-frame" "^7.5.5" - jest-worker "^24.9.0" - rollup-pluginutils "^2.8.2" + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" serialize-javascript "^4.0.0" - terser "^4.6.2" + terser "^5.0.0" rollup-plugin-visualizer@^4.1.1: version "4.1.1" @@ -5888,7 +5817,7 @@ rollup-plugin-vue@^6.0.0-beta.10: hash-sum "^2.0.0" rollup-pluginutils "^2.8.2" -rollup-plugin-web-worker-loader@^1.3.0: +rollup-plugin-web-worker-loader@^1.3.1: version "1.4.0" resolved "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.4.0.tgz#b4fd711118758c2111c30e794e2f2757b75a27b8" integrity sha512-jhlOwSkrXkAVFY2Fded0M1AS9iqZDNjUJxNz4BFjBlaKuUzTx8Ikey+b3LSegUJE4mzAAw2DqJD8pX12R0ZdDw== @@ -5908,7 +5837,7 @@ rollup@^0.63.4: "@types/estree" "0.0.39" "@types/node" "*" -rollup@^2.20.0, rollup@^2.26.11: +rollup@^2.26.11: version "2.29.0" resolved "https://registry.npmjs.org/rollup/-/rollup-2.29.0.tgz#0c5c5968530b21ca0e32f8b94b7cd9346cfb0eec" integrity sha512-gtU0sjxMpsVlpuAf4QXienPmUAhd6Kc7owQ4f5lypoxBW18fw2UNYZ4NssLGsri6WhUZkE/Ts3EMRebN+gNLiQ== @@ -6139,7 +6068,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@~0.5.12: +source-map-support@^0.5.17, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -6157,12 +6086,12 @@ source-map@^0.5.0, source-map@^0.5.6: resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -6507,7 +6436,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -6616,14 +6545,14 @@ tempfile@^3.0.0: temp-dir "^2.0.0" uuid "^3.3.2" -terser@^4.6.2: - version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser@^5.0.0: + version "5.3.5" + resolved "https://registry.npmjs.org/terser/-/terser-5.3.5.tgz#9e080baa0568f96654621b20eb9effa440b1484e" + integrity sha512-Qw3CZAMmmfU824AoGKalx+riwocSI5Cs0PoGp9RdSLfmxkmJgyBxqLBP/isDNtFyhHnitikvRMZzyVgeq+U+Tg== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" text-extensions@^1.0.0: version "1.9.0" @@ -6635,20 +6564,6 @@ text-table@^0.2.0: resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - through2@^2.0.0, through2@^2.0.2: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -7042,61 +6957,61 @@ vite-plugin-purge-icons@^0.4.4: "@purge-icons/generated" "^0.4.1" rollup-plugin-purge-icons "^0.4.4" -vite@^1.0.0-rc.4: - version "1.0.0-rc.4" - resolved "https://registry.npmjs.org/vite/-/vite-1.0.0-rc.4.tgz#210106136861b231704e6381ac9eb1bcd655d4f0" - integrity sha512-D9gpKKaE2U0YpIxNrSn+nlFPBT0sfg68Y1EReYW8YHMhbNFcxwS7RZIa1W/8Pq6yDfVRAhbOZNijv1mLG5pCEg== +"vite@npm:@knightly/vite": + version "1.0.0-knightly.202010140013" + resolved "https://registry.npmjs.org/@knightly/vite/-/vite-1.0.0-knightly.202010140013.tgz#8feb5926fe056538384e35c91d356675df3c3504" + integrity sha512-wsCJ7ISIpO2ek5/t5t8t+3EhDZu5y51tmf6P7yQKupaMw14CZ5YZY/VSeTWZfD5CIa2vaSCLf+x4fCv36Jw+kw== dependencies: - "@babel/parser" "^7.9.4" - "@rollup/plugin-commonjs" "^14.0.0" - "@rollup/plugin-json" "^4.0.3" - "@rollup/plugin-node-resolve" "^8.4.0" - "@types/koa" "^2.11.3" + "@babel/parser" "^7.11.5" + "@rollup/plugin-commonjs" "^15.0.0" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^9.0.0" + "@rollup/pluginutils" "^4.0.0" + "@types/koa" "^2.11.4" "@types/lru-cache" "^5.1.0" - "@vue/compiler-dom" "^3.0.0-rc.5" - "@vue/compiler-sfc" "^3.0.0-rc.5" + "@vue/compiler-dom" "^3.0.0-rc.10" + "@vue/compiler-sfc" "^3.0.0-rc.10" brotli-size "^4.0.0" - chalk "^4.0.0" - chokidar "^3.3.1" + chalk "^4.1.0" + chokidar "^3.4.2" clean-css "^4.2.3" debug "^4.1.1" dotenv "^8.2.0" dotenv-expand "^5.1.0" - es-module-lexer "^0.3.18" - esbuild "^0.6.10" + es-module-lexer "^0.3.25" + esbuild "^0.6.33" etag "^1.8.1" - execa "^4.0.1" - fs-extra "^9.0.0" + execa "^4.0.3" + fs-extra "^9.0.1" hash-sum "^2.0.0" isbuiltin "^1.0.0" - koa "^2.11.0" - koa-conditional-get "^2.0.0" - koa-etag "^3.0.0" + koa "^2.13.0" + koa-conditional-get "^3.0.0" + koa-etag "^4.0.0" koa-proxies "^0.11.0" - koa-send "^5.0.0" + koa-send "^5.0.1" koa-static "^5.0.0" - lru-cache "^5.1.1" + lru-cache "^6.0.0" magic-string "^0.25.7" merge-source-map "^1.1.0" mime-types "^2.1.27" minimist "^1.2.5" - open "^7.0.3" - ora "^4.0.4" - postcss "^7.0.28" + open "^7.2.1" + ora "^5.1.0" + postcss "^7.0.32" postcss-discard-comments "^4.0.2" postcss-import "^12.0.1" postcss-load-config "^2.1.0" resolve "^1.17.0" - rollup "^2.20.0" - rollup-plugin-dynamic-import-variables "^1.0.1" - rollup-plugin-terser "^5.3.0" + rollup "^2.26.11" + rollup-plugin-dynamic-import-variables "^1.1.0" + rollup-plugin-terser "^7.0.2" rollup-plugin-vue "^6.0.0-beta.10" - rollup-plugin-web-worker-loader "^1.3.0" - rollup-pluginutils "^2.8.2" + rollup-plugin-web-worker-loader "^1.3.1" selfsigned "^1.10.7" slash "^3.0.0" - vue "^3.0.0-rc.5" - ws "^7.2.3" + vue "^3.0.0-rc.10" + ws "^7.3.1" vue-eslint-parser@^7.1.0: version "7.1.0" @@ -7132,16 +7047,7 @@ vue-router@^4.0.0-beta.13: resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.0-beta.13.tgz#4611d09a9e44f231cc401ecc294a7f2dcb30e6a6" integrity sha512-dYv9qpHPaojQlfujViiTkPkf1Bf5RCFzkCkdVFc1cENzWJYAGJanpIHiyjyKoM4u7IDFBZMItci+U4ieaEWA8A== -vue@^3.0.0-rc.5: - version "3.0.0" - resolved "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz#cfb5df5c34efce319b113a1667d12b74dcfd9c90" - integrity sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw== - dependencies: - "@vue/compiler-dom" "3.0.0" - "@vue/runtime-dom" "3.0.0" - "@vue/shared" "3.0.0" - -vue@^3.0.1: +vue@^3.0.0-rc.10, vue@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/vue/-/vue-3.0.1.tgz#dcdabf07da37e655e23d7d22eacc18c2da5f5a16" integrity sha512-WBTgaQMJIWQuhlzMV6C0qvVrxyQSpx3gKwflYC0sqGKEZSxMIOYRnrIlHUN4ivUVvP7mUMxcnFTt7P+akdOkQA== @@ -7257,7 +7163,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^7.2.3: +ws@^7.3.1: version "7.3.1" resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== @@ -7282,6 +7188,11 @@ yallist@^3.0.2: resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" -- GitLab