Browse Source

build: Add vite-plugin-html plugin

kailong321200875 3 years ago
parent
commit
d5b6e2a777
13 changed files with 315 additions and 19 deletions
  1. 3 0
      .env.base
  2. 3 0
      .env.dev
  3. 3 0
      .env.pro
  4. 2 2
      index.html
  5. 1 0
      package.json
  6. 268 0
      pnpm-lock.yaml
  7. 1 1
      src/config/app.ts
  8. 10 0
      src/router/index.ts
  9. 11 12
      src/store/modules/permission.ts
  10. 1 1
      src/views/Error/403.vue
  11. 1 1
      src/views/Error/404.vue
  12. 1 1
      src/views/Error/500.vue
  13. 10 1
      vite.config.ts

+ 3 - 0
.env.base

@@ -6,3 +6,6 @@ VITE_API_BASEPATH = base
 
 
 # 打包路径
 # 打包路径
 VITE_BASE_PATH = /
 VITE_BASE_PATH = /
+
+# 标题
+VITE_APP_TITLE = ElementAdmin

+ 3 - 0
.env.dev

@@ -18,3 +18,6 @@ VITE_SOURCEMAP = true
 
 
 # 输出路径
 # 输出路径
 VITE_OUT_DIR = dist-dev
 VITE_OUT_DIR = dist-dev
+
+# 标题
+VITE_APP_TITLE = ElementAdmin

+ 3 - 0
.env.pro

@@ -18,3 +18,6 @@ VITE_SOURCEMAP = false
 
 
 # 输出路径
 # 输出路径
 VITE_OUT_DIR = dist-pro
 VITE_OUT_DIR = dist-pro
+
+# 标题
+VITE_APP_TITLE = ElementAdmin

+ 2 - 2
index.html

@@ -4,7 +4,7 @@
     <meta charset="UTF-8" />
     <meta charset="UTF-8" />
     <link rel="icon" href="/favicon.ico" />
     <link rel="icon" href="/favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title></title>
+    <title><%= title %></title>
   </head>
   </head>
   <body>
   <body>
     <div id="app">
     <div id="app">
@@ -128,7 +128,7 @@
         <div class="app-loading-wrap">
         <div class="app-loading-wrap">
           <div class="app-loading-title">
           <div class="app-loading-title">
             <img src="/logo.png" class="app-loading-logo" alt="Logo" />
             <img src="/logo.png" class="app-loading-logo" alt="Logo" />
-            <div class="app-loading-title">element-plus-admin</div>
+            <div class="app-loading-title"><%= title %></div>
           </div>
           </div>
           <div class="app-loading-item">
           <div class="app-loading-item">
             <div class="app-loading-outter"></div>
             <div class="app-loading-outter"></div>

+ 1 - 0
package.json

@@ -91,6 +91,7 @@
     "unplugin-vue-define-options": "^0.3.1",
     "unplugin-vue-define-options": "^0.3.1",
     "vite": "2.8.3",
     "vite": "2.8.3",
     "vite-plugin-eslint": "^1.3.0",
     "vite-plugin-eslint": "^1.3.0",
+    "vite-plugin-html": "^3.0.6",
     "vite-plugin-mock": "^2.9.6",
     "vite-plugin-mock": "^2.9.6",
     "vite-plugin-purge-icons": "^0.7.0",
     "vite-plugin-purge-icons": "^0.7.0",
     "vite-plugin-style-import": "1.4.1",
     "vite-plugin-style-import": "1.4.1",

+ 268 - 0
pnpm-lock.yaml

@@ -60,6 +60,7 @@ specifiers:
   unplugin-vue-define-options: ^0.3.1
   unplugin-vue-define-options: ^0.3.1
   vite: 2.8.3
   vite: 2.8.3
   vite-plugin-eslint: ^1.3.0
   vite-plugin-eslint: ^1.3.0
+  vite-plugin-html: ^3.0.6
   vite-plugin-mock: ^2.9.6
   vite-plugin-mock: ^2.9.6
   vite-plugin-purge-icons: ^0.7.0
   vite-plugin-purge-icons: ^0.7.0
   vite-plugin-style-import: 1.4.1
   vite-plugin-style-import: 1.4.1
@@ -141,6 +142,7 @@ devDependencies:
   unplugin-vue-define-options: registry.npmmirror.com/unplugin-vue-define-options/0.3.1_vite@2.8.3+vue@3.2.31
   unplugin-vue-define-options: registry.npmmirror.com/unplugin-vue-define-options/0.3.1_vite@2.8.3+vue@3.2.31
   vite: registry.npmmirror.com/vite/2.8.3_less@4.1.2
   vite: registry.npmmirror.com/vite/2.8.3_less@4.1.2
   vite-plugin-eslint: registry.nlark.com/vite-plugin-eslint/1.3.0_vite@2.8.3
   vite-plugin-eslint: registry.nlark.com/vite-plugin-eslint/1.3.0_vite@2.8.3
+  vite-plugin-html: registry.npmmirror.com/vite-plugin-html/3.0.6_vite@2.8.3
   vite-plugin-mock: registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.8.3
   vite-plugin-mock: registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.8.3
   vite-plugin-purge-icons: registry.nlark.com/vite-plugin-purge-icons/0.7.0_vite@2.8.3
   vite-plugin-purge-icons: registry.nlark.com/vite-plugin-purge-icons/0.7.0_vite@2.8.3
   vite-plugin-style-import: registry.npmmirror.com/vite-plugin-style-import/1.4.1_vite@2.8.3
   vite-plugin-style-import: registry.npmmirror.com/vite-plugin-style-import/1.4.1_vite@2.8.3
@@ -4866,6 +4868,17 @@ packages:
     version: 4.0.7
     version: 4.0.7
     dev: false
     dev: false
 
 
+  registry.npmmirror.com/async/0.9.2:
+    resolution:
+      {
+        integrity: sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/async/-/async-0.9.2.tgz
+      }
+    name: async
+    version: 0.9.2
+    dev: true
+
   registry.npmmirror.com/atob/2.1.2:
   registry.npmmirror.com/atob/2.1.2:
     resolution:
     resolution:
       {
       {
@@ -5079,6 +5092,17 @@ packages:
       picocolors: registry.npmmirror.com/picocolors/1.0.0
       picocolors: registry.npmmirror.com/picocolors/1.0.0
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/buffer-from/1.1.2:
+    resolution:
+      {
+        integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz
+      }
+    name: buffer-from
+    version: 1.1.2
+    dev: true
+
   registry.npmmirror.com/cac/6.7.12:
   registry.npmmirror.com/cac/6.7.12:
     resolution:
     resolution:
       {
       {
@@ -5369,6 +5393,20 @@ packages:
       static-extend: registry.npmmirror.com/static-extend/0.1.2
       static-extend: registry.npmmirror.com/static-extend/0.1.2
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/clean-css/5.2.4:
+    resolution:
+      {
+        integrity: sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.2.4.tgz
+      }
+    name: clean-css
+    version: 5.2.4
+    engines: { node: '>= 10.0' }
+    dependencies:
+      source-map: registry.npmmirror.com/source-map/0.6.1
+    dev: true
+
   registry.npmmirror.com/clean-stack/2.2.0:
   registry.npmmirror.com/clean-stack/2.2.0:
     resolution:
     resolution:
       {
       {
@@ -5550,6 +5588,17 @@ packages:
     version: 2.0.16
     version: 2.0.16
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/commander/2.20.3:
+    resolution:
+      {
+        integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz
+      }
+    name: commander
+    version: 2.20.3
+    dev: true
+
   registry.npmmirror.com/commander/7.2.0:
   registry.npmmirror.com/commander/7.2.0:
     resolution:
     resolution:
       {
       {
@@ -5640,6 +5689,29 @@ packages:
     version: 1.0.17
     version: 1.0.17
     dev: false
     dev: false
 
 
+  registry.npmmirror.com/connect-history-api-fallback/1.6.0:
+    resolution:
+      {
+        integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz
+      }
+    name: connect-history-api-fallback
+    version: 1.6.0
+    engines: { node: '>=0.8' }
+    dev: true
+
+  registry.npmmirror.com/consola/2.15.3:
+    resolution:
+      {
+        integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz
+      }
+    name: consola
+    version: 2.15.3
+    dev: true
+
   registry.npmmirror.com/constant-case/3.0.4:
   registry.npmmirror.com/constant-case/3.0.4:
     resolution:
     resolution:
       {
       {
@@ -6345,6 +6417,30 @@ packages:
       is-obj: registry.npmmirror.com/is-obj/2.0.0
       is-obj: registry.npmmirror.com/is-obj/2.0.0
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/dotenv-expand/8.0.1:
+    resolution:
+      {
+        integrity: sha512-j/Ih7bIERDR5PzI89Zu8ayd3tXZ6E3dbY0ljQ9Db0K87qBO8zdLsi2dIvDHMWtjC3Yxb8XixOTHAtia0fDHRpg==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-8.0.1.tgz
+      }
+    name: dotenv-expand
+    version: 8.0.1
+    engines: { node: '>=12' }
+    dev: true
+
+  registry.npmmirror.com/dotenv/16.0.0:
+    resolution:
+      {
+        integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/dotenv/-/dotenv-16.0.0.tgz
+      }
+    name: dotenv
+    version: 16.0.0
+    engines: { node: '>=12' }
+    dev: true
+
   registry.npmmirror.com/echarts-wordcloud/2.0.0_echarts@5.3.0:
   registry.npmmirror.com/echarts-wordcloud/2.0.0_echarts@5.3.0:
     resolution:
     resolution:
       {
       {
@@ -6375,6 +6471,21 @@ packages:
       zrender: registry.npmmirror.com/zrender/5.3.0
       zrender: registry.npmmirror.com/zrender/5.3.0
     dev: false
     dev: false
 
 
+  registry.npmmirror.com/ejs/3.1.6:
+    resolution:
+      {
+        integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/ejs/-/ejs-3.1.6.tgz
+      }
+    name: ejs
+    version: 3.1.6
+    engines: { node: '>=0.10.0' }
+    hasBin: true
+    dependencies:
+      jake: registry.npmmirror.com/jake/10.8.2
+    dev: true
+
   registry.npmmirror.com/electron-to-chromium/1.4.30:
   registry.npmmirror.com/electron-to-chromium/1.4.30:
     resolution:
     resolution:
       {
       {
@@ -7646,6 +7757,19 @@ packages:
       flat-cache: registry.npmmirror.com/flat-cache/3.0.4
       flat-cache: registry.npmmirror.com/flat-cache/3.0.4
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/filelist/1.0.2:
+    resolution:
+      {
+        integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/filelist/-/filelist-1.0.2.tgz
+      }
+    name: filelist
+    version: 1.0.2
+    dependencies:
+      minimatch: registry.npmmirror.com/minimatch/3.0.4
+    dev: true
+
   registry.npmmirror.com/fill-range/4.0.0:
   registry.npmmirror.com/fill-range/4.0.0:
     resolution:
     resolution:
       {
       {
@@ -8408,6 +8532,29 @@ packages:
       lru-cache: registry.npmmirror.com/lru-cache/6.0.0
       lru-cache: registry.npmmirror.com/lru-cache/6.0.0
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/html-minifier-terser/6.1.0:
+    resolution:
+      {
+        integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz
+      }
+    name: html-minifier-terser
+    version: 6.1.0
+    engines: { node: '>=12' }
+    hasBin: true
+    dependencies:
+      camel-case: registry.npmmirror.com/camel-case/4.1.2
+      clean-css: registry.npmmirror.com/clean-css/5.2.4
+      commander: registry.npmmirror.com/commander/8.3.0
+      he: registry.npmmirror.com/he/1.2.0
+      param-case: registry.npmmirror.com/param-case/3.0.4
+      relateurl: registry.npmmirror.com/relateurl/0.2.7
+      terser: registry.npmmirror.com/terser/5.10.0
+    transitivePeerDependencies:
+      - acorn
+    dev: true
+
   registry.npmmirror.com/html-tags/3.1.0:
   registry.npmmirror.com/html-tags/3.1.0:
     resolution:
     resolution:
       {
       {
@@ -9146,6 +9293,23 @@ packages:
     engines: { node: '>=0.10.0' }
     engines: { node: '>=0.10.0' }
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/jake/10.8.2:
+    resolution:
+      {
+        integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/jake/-/jake-10.8.2.tgz
+      }
+    name: jake
+    version: 10.8.2
+    hasBin: true
+    dependencies:
+      async: registry.npmmirror.com/async/0.9.2
+      chalk: registry.npmmirror.com/chalk/2.4.2
+      filelist: registry.npmmirror.com/filelist/1.0.2
+      minimatch: registry.npmmirror.com/minimatch/3.0.4
+    dev: true
+
   registry.npmmirror.com/jiti/1.12.9:
   registry.npmmirror.com/jiti/1.12.9:
     resolution:
     resolution:
       {
       {
@@ -10353,6 +10517,20 @@ packages:
     dependencies:
     dependencies:
       whatwg-url: registry.npmmirror.com/whatwg-url/5.0.0
       whatwg-url: registry.npmmirror.com/whatwg-url/5.0.0
 
 
+  registry.npmmirror.com/node-html-parser/5.2.0:
+    resolution:
+      {
+        integrity: sha512-fmiwLfQu+J2A0zjwSEkztSHexAf5qq/WoiL/Hgo1K7JpfEP+OGWY5maG0kGaM+IFVdixF/1QbyXaQ3h4cGfeLw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/node-html-parser/-/node-html-parser-5.2.0.tgz
+      }
+    name: node-html-parser
+    version: 5.2.0
+    dependencies:
+      css-select: registry.npmmirror.com/css-select/4.2.1
+      he: registry.npmmirror.com/he/1.2.0
+    dev: true
+
   registry.npmmirror.com/node-releases/2.0.1:
   registry.npmmirror.com/node-releases/2.0.1:
     resolution:
     resolution:
       {
       {
@@ -11619,6 +11797,18 @@ packages:
     engines: { node: '>=8' }
     engines: { node: '>=8' }
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/relateurl/0.2.7:
+    resolution:
+      {
+        integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz
+      }
+    name: relateurl
+    version: 0.2.7
+    engines: { node: '>= 0.10' }
+    dev: true
+
   registry.npmmirror.com/repeat-element/1.1.4:
   registry.npmmirror.com/repeat-element/1.1.4:
     resolution:
     resolution:
       {
       {
@@ -12260,6 +12450,20 @@ packages:
       urix: registry.npmmirror.com/urix/0.1.0
       urix: registry.npmmirror.com/urix/0.1.0
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/source-map-support/0.5.21:
+    resolution:
+      {
+        integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz
+      }
+    name: source-map-support
+    version: 0.5.21
+    dependencies:
+      buffer-from: registry.npmmirror.com/buffer-from/1.1.2
+      source-map: registry.npmmirror.com/source-map/0.6.1
+    dev: true
+
   registry.npmmirror.com/source-map-url/0.4.1:
   registry.npmmirror.com/source-map-url/0.4.1:
     resolution:
     resolution:
       {
       {
@@ -12295,6 +12499,18 @@ packages:
     version: 0.6.1
     version: 0.6.1
     engines: { node: '>=0.10.0' }
     engines: { node: '>=0.10.0' }
 
 
+  registry.npmmirror.com/source-map/0.7.3:
+    resolution:
+      {
+        integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz
+      }
+    name: source-map
+    version: 0.7.3
+    engines: { node: '>= 8' }
+    dev: true
+
   registry.npmmirror.com/sourcemap-codec/1.4.8:
   registry.npmmirror.com/sourcemap-codec/1.4.8:
     resolution:
     resolution:
       {
       {
@@ -12920,6 +13136,28 @@ packages:
       strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1
       strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/terser/5.10.0:
+    resolution:
+      {
+        integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/terser/-/terser-5.10.0.tgz
+      }
+    name: terser
+    version: 5.10.0
+    engines: { node: '>=10' }
+    hasBin: true
+    peerDependencies:
+      acorn: ^8.5.0
+    peerDependenciesMeta:
+      acorn:
+        optional: true
+    dependencies:
+      commander: registry.npmmirror.com/commander/2.20.3
+      source-map: registry.npmmirror.com/source-map/0.7.3
+      source-map-support: registry.npmmirror.com/source-map-support/0.5.21
+    dev: true
+
   registry.npmmirror.com/text-extensions/1.9.0:
   registry.npmmirror.com/text-extensions/1.9.0:
     resolution:
     resolution:
       {
       {
@@ -13512,6 +13750,36 @@ packages:
     engines: { node: '>= 0.8' }
     engines: { node: '>= 0.8' }
     dev: true
     dev: true
 
 
+  registry.npmmirror.com/vite-plugin-html/3.0.6_vite@2.8.3:
+    resolution:
+      {
+        integrity: sha512-B6ZAufvqUqdfPhcV+El8NNI3qV0d3ZntIur2UnP4tcHBV/O2d+6wHF79bJWuqR4WsvmsV7dejCNS3rAYFCisWw==,
+        registry: https://registry.npm.taobao.org/,
+        tarball: https://registry.npmmirror.com/vite-plugin-html/-/vite-plugin-html-3.0.6.tgz
+      }
+    id: registry.npmmirror.com/vite-plugin-html/3.0.6
+    name: vite-plugin-html
+    version: 3.0.6
+    peerDependencies:
+      vite: '>=2.0.0'
+    dependencies:
+      '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.1.2
+      colorette: registry.npmmirror.com/colorette/2.0.16
+      connect-history-api-fallback: registry.npmmirror.com/connect-history-api-fallback/1.6.0
+      consola: registry.npmmirror.com/consola/2.15.3
+      dotenv: registry.npmmirror.com/dotenv/16.0.0
+      dotenv-expand: registry.npmmirror.com/dotenv-expand/8.0.1
+      ejs: registry.npmmirror.com/ejs/3.1.6
+      fast-glob: registry.npmmirror.com/fast-glob/3.2.11
+      fs-extra: registry.npmmirror.com/fs-extra/10.0.0
+      html-minifier-terser: registry.npmmirror.com/html-minifier-terser/6.1.0
+      node-html-parser: registry.npmmirror.com/node-html-parser/5.2.0
+      pathe: registry.npmmirror.com/pathe/0.2.0
+      vite: registry.npmmirror.com/vite/2.8.3_less@4.1.2
+    transitivePeerDependencies:
+      - acorn
+    dev: true
+
   registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.8.3:
   registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.8.3:
     resolution:
     resolution:
       {
       {

+ 1 - 1
src/config/app.ts

@@ -48,7 +48,7 @@ export const appModules: AppState = {
   userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
   userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
   sizeMap: ['default', 'large', 'small'],
   sizeMap: ['default', 'large', 'small'],
   mobile: false, // 是否是移动端
   mobile: false, // 是否是移动端
-  title: 'ElementAdmin', // 标题
+  title: import.meta.env.VITE_APP_TITLE as string, // 标题
   pageLoading: false, // 路由跳转loading
   pageLoading: false, // 路由跳转loading
 
 
   breadcrumb: true, // 面包屑
   breadcrumb: true, // 面包屑

+ 10 - 0
src/router/index.ts

@@ -33,6 +33,16 @@ export const constantRouterMap: AppRouteRecordRaw[] = [
       title: t('router.login'),
       title: t('router.login'),
       noTagsView: true
       noTagsView: true
     }
     }
+  },
+  {
+    path: '/404',
+    component: () => import('@/views/Error/404.vue'),
+    name: 'NoFind',
+    meta: {
+      hidden: true,
+      title: '404',
+      noTagsView: true
+    }
   }
   }
 ]
 ]
 
 

+ 11 - 12
src/store/modules/permission.ts

@@ -60,18 +60,17 @@ export const usePermissionStore = defineStore({
         const routerMap: AppRouteRecordRaw[] = cloneDeep(asyncRouterMap)
         const routerMap: AppRouteRecordRaw[] = cloneDeep(asyncRouterMap)
 
 
         // 动态路由,404一定要放到最后面
         // 动态路由,404一定要放到最后面
-        this.addRouters = routerMap
-        // .concat([
-        //   {
-        //     path: '/:path(.*)*',
-        //     redirect: '/404',
-        //     name: '404',
-        //     meta: {
-        //       hidden: true,
-        //       breadcrumb: false
-        //     }
-        //   }
-        // ])
+        this.addRouters = routerMap.concat([
+          {
+            path: '/:path(.*)*',
+            redirect: '/404',
+            name: '404Page',
+            meta: {
+              hidden: true,
+              breadcrumb: false
+            }
+          }
+        ])
         // 渲染菜单的所有路由
         // 渲染菜单的所有路由
         this.routers = cloneDeep(constantRouterMap).concat(routerMap)
         this.routers = cloneDeep(constantRouterMap).concat(routerMap)
         resolve()
         resolve()

+ 1 - 1
src/views/Error/403.vue

@@ -13,5 +13,5 @@ const errorClick = () => {
 </script>
 </script>
 
 
 <template>
 <template>
-  <Error type="403" @errorClick="errorClick" />
+  <Error type="403" @error-click="errorClick" />
 </template>
 </template>

+ 1 - 1
src/views/Error/404.vue

@@ -13,5 +13,5 @@ const errorClick = () => {
 </script>
 </script>
 
 
 <template>
 <template>
-  <Error @errorClick="errorClick" />
+  <Error @error-click="errorClick" />
 </template>
 </template>

+ 1 - 1
src/views/Error/500.vue

@@ -13,5 +13,5 @@ const errorClick = () => {
 </script>
 </script>
 
 
 <template>
 <template>
-  <Error type="500" @errorClick="errorClick" />
+  <Error type="500" @error-click="errorClick" />
 </template>
 </template>

+ 10 - 1
vite.config.ts

@@ -11,6 +11,7 @@ import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
 import PurgeIcons from 'vite-plugin-purge-icons'
 import PurgeIcons from 'vite-plugin-purge-icons'
 import { viteMockServe } from 'vite-plugin-mock'
 import { viteMockServe } from 'vite-plugin-mock'
 import DefineOptions from 'unplugin-vue-define-options/vite'
 import DefineOptions from 'unplugin-vue-define-options/vite'
+import { createHtmlPlugin } from 'vite-plugin-html'
 
 
 // https://vitejs.dev/config/
 // https://vitejs.dev/config/
 const root = process.cwd()
 const root = process.cwd()
@@ -70,7 +71,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
           setupProdMockServer()
           setupProdMockServer()
           `
           `
       }),
       }),
-      DefineOptions()
+      DefineOptions(),
+      createHtmlPlugin({
+        inject: {
+          data: {
+            title: env.VITE_APP_TITLE,
+            injectScript: `<script src="./inject.js"></script>`,
+          }
+        }
+      })
     ],
     ],
 
 
     css: {
     css: {