Browse Source

feat: 提取依赖,优化加载

zhangyuhan 9 months ago
parent
commit
39ba87e49c

+ 2 - 2
client/main.js

@@ -22,8 +22,8 @@ import Contextmenu from "vue-contextmenujs"
 import vueMiniPlayer from 'vue-mini-player'
 import vueMiniPlayer from 'vue-mini-player'
 import 'vue-mini-player/lib/vue-mini-player.css'
 import 'vue-mini-player/lib/vue-mini-player.css'
 
 
-import VCharts from 'v-charts'
-Vue.use(VCharts)
+// import VCharts from 'v-charts'
+// Vue.use(VCharts)
 
 
 
 
 Vue.use(Element);
 Vue.use(Element);

+ 42 - 42
client/pages/editor/ele-config.js

@@ -242,48 +242,48 @@ export default [{
       },
       },
     ]
     ]
   },
   },
-  {
-    title: '图表组件',
-    components: [{
-        elName: 'Ds-linechart',
-        title: '折线图',
-        img: require('@/common/images/elementIcon/lineCharts.jpg'),
-        valueType: '',
-        defaultStyle: {
-          width: $config.canvasH5Width,
-          height: 350,
-        }
-      },
-      {
-        elName: 'Ds-piechart',
-        title: '饼图',
-        img: require('@/common/images/elementIcon/pieCharts.jpg'),
-        valueType: '',
-        defaultStyle: {
-          width: $config.canvasH5Width,
-          height: 350,
-        }
-      }, {
-        elName: 'Ds-wordcloud',
-        title: '词云',
-        img: require('@/common/images/elementIcon/wordcloud.jpg'),
-        valueType: '',
-        defaultStyle: {
-          width: $config.canvasH5Width,
-          height: 370,
-        }
-      }, {
-        elName: 'Ds-funnel',
-        title: '漏斗图',
-        img: require('@/common/images/elementIcon/funnel.jpg'),
-        valueType: '',
-        defaultStyle: {
-          width: $config.canvasH5Width,
-          height: 370,
-        }
-      }
-    ]
-  },
+  // {
+  //   title: '图表组件',
+  //   components: [{
+  //       elName: 'Ds-linechart',
+  //       title: '折线图',
+  //       img: require('@/common/images/elementIcon/lineCharts.jpg'),
+  //       valueType: '',
+  //       defaultStyle: {
+  //         width: $config.canvasH5Width,
+  //         height: 350,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-piechart',
+  //       title: '饼图',
+  //       img: require('@/common/images/elementIcon/pieCharts.jpg'),
+  //       valueType: '',
+  //       defaultStyle: {
+  //         width: $config.canvasH5Width,
+  //         height: 350,
+  //       }
+  //     }, {
+  //       elName: 'Ds-wordcloud',
+  //       title: '词云',
+  //       img: require('@/common/images/elementIcon/wordcloud.jpg'),
+  //       valueType: '',
+  //       defaultStyle: {
+  //         width: $config.canvasH5Width,
+  //         height: 370,
+  //       }
+  //     }, {
+  //       elName: 'Ds-funnel',
+  //       title: '漏斗图',
+  //       img: require('@/common/images/elementIcon/funnel.jpg'),
+  //       valueType: '',
+  //       defaultStyle: {
+  //         width: $config.canvasH5Width,
+  //         height: 370,
+  //       }
+  //     }
+  //   ]
+  // },
   {
   {
     title: '业务组件',
     title: '业务组件',
     components: [
     components: [

+ 7 - 2
client/plugins/SourceForm/src/index.vue

@@ -92,7 +92,7 @@ import $axios from "@/service/httpServer";
 		props: {
 		props: {
       api: {
       api: {
         type: String,
         type: String,
-        default: '/salesLeads/collectInfo'
+        default: '/salesLeads/official/notLogin'
       },
       },
       btnType:{
       btnType:{
         type:String,
         type:String,
@@ -148,7 +148,12 @@ import $axios from "@/service/httpServer";
         }).then(res => {
         }).then(res => {
           console.log('res', res)
           console.log('res', res)
           Toast.clear()
           Toast.clear()
-          Toast('提交成功,我们会尽快联系您~')
+          if (res.data) {
+            Toast('提交成功')
+          } else {
+            Toast(res.error_msg || '太火爆了,请稍后重试')
+          }
+
         }).catch(() => {
         }).catch(() => {
           Toast.clear()
           Toast.clear()
           Toast('太火爆了,请稍后重试')
           Toast('太火爆了,请稍后重试')

+ 4 - 2
client/router/index.js

@@ -1,7 +1,9 @@
 import Vue from 'vue'
 import Vue from 'vue'
 import Router from 'vue-router'
 import Router from 'vue-router'
 
 
-Vue.use(Router)
+if (process.env.NODE_ENV !== 'production') {
+  Vue.use(Router)
+}
 
 
 /**  各个模块 */
 /**  各个模块 */
 export default new Router({
 export default new Router({
@@ -74,4 +76,4 @@ export default new Router({
     }
     }
 
 
   ]
   ]
-})
+})

+ 3 - 1
client/store/index.js

@@ -31,7 +31,9 @@ const actions = {
 const mutations = {};
 const mutations = {};
 const getters = {};
 const getters = {};
 
 
-Vue.use(Vuex);
+if (process.env.NODE_DEV !== 'production') {
+	Vue.use(Vuex)
+}
 export default new Vuex.Store({
 export default new Vuex.Store({
 	state,
 	state,
 	getters,
 	getters,

+ 4 - 3
package.json

@@ -6,6 +6,7 @@
     "client": "vue-cli-service serve",
     "client": "vue-cli-service serve",
     "server": "nodemon service/app.js dev -L",
     "server": "nodemon service/app.js dev -L",
     "build": "vue-cli-service build --no-clean",
     "build": "vue-cli-service build --no-clean",
+    "build:test": "vue-cli-service build --no-clean --mode development",
     "start": "pm2 start service/app.js",
     "start": "pm2 start service/app.js",
     "stop-app": "pm2 stop app",
     "stop-app": "pm2 stop app",
     "restart-app": "pm2 restart app",
     "restart-app": "pm2 restart app",
@@ -19,7 +20,7 @@
   "dependencies": {
   "dependencies": {
     "ali-oss": "^6.1.1",
     "ali-oss": "^6.1.1",
     "animate.css": "^4.1.1",
     "animate.css": "^4.1.1",
-    "axios": "^0.28.1",
+    "axios": "^1.6.7",
     "babel-polyfill": "^6.26.0",
     "babel-polyfill": "^6.26.0",
     "core-js": "^3.6.5",
     "core-js": "^3.6.5",
     "crypto-js": "^3.1.9-1",
     "crypto-js": "^3.1.9-1",
@@ -30,7 +31,7 @@
     "html2canvas": "^1.0.0-rc.5",
     "html2canvas": "^1.0.0-rc.5",
     "koa-body": "^4.2.0",
     "koa-body": "^4.2.0",
     "koa-ejs": "^4.3.0",
     "koa-ejs": "^4.3.0",
-    "lodash": "^4.17.15",
+    "lodash": "^4.17.21",
     "node-schedule": "^1.3.2",
     "node-schedule": "^1.3.2",
     "nprogress": "^0.2.0",
     "nprogress": "^0.2.0",
     "qrcode.vue": "^1.6.3",
     "qrcode.vue": "^1.6.3",
@@ -38,7 +39,7 @@
     "screenfull": "^5.1.0",
     "screenfull": "^5.1.0",
     "swiper": "^6.3.5",
     "swiper": "^6.3.5",
     "v-charts": "^1.19.0",
     "v-charts": "^1.19.0",
-    "vant": "^2.12.14",
+    "vant": "^2.12.24",
     "vue": "2.7.16",
     "vue": "2.7.16",
     "vue-awesome-swiper": "^4.1.1",
     "vue-awesome-swiper": "^4.1.1",
     "vue-baidu-map": "^0.21.22",
     "vue-baidu-map": "^0.21.22",

BIN
public/favicon.ico


+ 8 - 0
public/index.html

@@ -7,6 +7,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
     <title>Dcode-Editor</title>
     <title>Dcode-Editor</title>
+    <!-- 使用CDN的CSS文件 -->
 </head>
 </head>
 
 
 <body>
 <body>
@@ -15,6 +16,13 @@
 </noscript>
 </noscript>
 <div id="app"></div>
 <div id="app"></div>
 <!-- built files will be auto injected -->
 <!-- built files will be auto injected -->
+<% if (process.env.NODE_ENV === 'production') { %>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js"></script>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js"></script>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js"></script>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js"></script>
+<script src="https://cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js"></script>
+<% } %>
 </body>
 </body>
 
 
 </html>
 </html>

BIN
service/public/favicon.ico


BIN
service/public/img/carousel.a5b2553e.png


+ 5 - 1
service/views/h5-long.ejs

@@ -11,7 +11,11 @@
   <meta name="renderer" content="webkit">
   <meta name="renderer" content="webkit">
   <meta name="robots" content="index, follow">
   <meta name="robots" content="index, follow">
   <meta name="format-detection" content="telephone=no">
   <meta name="format-detection" content="telephone=no">
-  <script src="/third-libs/vue.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js"></script>
   <link rel="stylesheet" href="/third-libs/animate.min.css">
   <link rel="stylesheet" href="/third-libs/animate.min.css">
   <!--引入模板-->
   <!--引入模板-->
   <script src="/engine_libs/h5-long/page-engine.umd.js"></script>
   <script src="/engine_libs/h5-long/page-engine.umd.js"></script>

+ 5 - 1
service/views/pc.ejs

@@ -11,7 +11,11 @@
   <meta name="renderer" content="webkit">
   <meta name="renderer" content="webkit">
   <meta name="robots" content="index, follow">
   <meta name="robots" content="index, follow">
   <meta name="format-detection" content="telephone=no">
   <meta name="format-detection" content="telephone=no">
-  <script src="/third-libs/vue.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js"></script>
+  <script src="https://cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js"></script>
   <link rel="stylesheet" href="/third-libs/animate.min.css">
   <link rel="stylesheet" href="/third-libs/animate.min.css">
   <!--引入模板-->
   <!--引入模板-->
   <script src="/engine_libs/pc/page-engine.umd.js"></script>
   <script src="/engine_libs/pc/page-engine.umd.js"></script>

+ 33 - 1
vue.config.js

@@ -5,6 +5,33 @@ function resolve(dir) {
   return path.join(__dirname, dir)
   return path.join(__dirname, dir)
 }
 }
 
 
+const cdn = {
+  css: [
+    '//cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/style.min.css'
+  ],
+  js: [
+    '//cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/echarts/4.8.0/echarts.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/index.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/lodash/4.17.21/lodash.min.js',
+    '//res.wx.qq.com/open/js/jweixin-1.6.0.js'
+  ]
+}
+
+const externals = {
+  vue: 'Vue',
+  'vue-router': 'VueRouter',
+  vuex: 'Vuex',
+  axios: 'axios',
+  'echarts': 'echarts',
+  'v-charts': 'VeIndex',
+  vant: 'vant',
+}
+
 let devServer = {
 let devServer = {
   proxy: { // 代理
   proxy: { // 代理
     '/dev-api': {
     '/dev-api': {
@@ -105,6 +132,11 @@ module.exports = {
   },
   },
   // 扩展 webpack 配置
   // 扩展 webpack 配置
   chainWebpack: config => {
   chainWebpack: config => {
+
+    if (process.env.NODE_ENV === 'production') {
+      config.externals(externals)
+    }
+
     // @ 默认指向 src 目录,这里要改成 examples
     // @ 默认指向 src 目录,这里要改成 examples
     // 另外也可以新增一个 ~ 指向 packages
     // 另外也可以新增一个 ~ 指向 packages
     config.resolve.alias
     config.resolve.alias
@@ -125,7 +157,7 @@ module.exports = {
         return options
         return options
       })
       })
       // 移除 prefetch 插件,当页面太多时,会导致太多无意义的请求
       // 移除 prefetch 插件,当页面太多时,会导致太多无意义的请求
-    config.plugins.delete('prefetch')
+    // config.plugins.delete('prefetch')
 
 
   }
   }
 }
 }

+ 74 - 5
yarn.lock

@@ -893,6 +893,11 @@
     exec-sh "^0.3.2"
     exec-sh "^0.3.2"
     minimist "^1.2.0"
     minimist "^1.2.0"
 
 
+"@discoveryjs/json-ext@0.5.7":
+  version "0.5.7"
+  resolved "http://192.168.3.71:4873/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
+  integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
+
 "@hapi/address@2.x.x":
 "@hapi/address@2.x.x":
   version "2.1.4"
   version "2.1.4"
   resolved "http://192.168.3.71:4873/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
   resolved "http://192.168.3.71:4873/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
@@ -1212,6 +1217,11 @@
   dependencies:
   dependencies:
     debug "^4.3.1"
     debug "^4.3.1"
 
 
+"@polka/url@^1.0.0-next.24":
+  version "1.0.0-next.28"
+  resolved "http://192.168.3.71:4873/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73"
+  integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==
+
 "@soda/friendly-errors-webpack-plugin@^1.7.1":
 "@soda/friendly-errors-webpack-plugin@^1.7.1":
   version "1.8.1"
   version "1.8.1"
   resolved "http://192.168.3.71:4873/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85"
   resolved "http://192.168.3.71:4873/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85"
@@ -2124,7 +2134,7 @@ acorn-walk@^7.1.1:
   resolved "http://192.168.3.71:4873/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
   resolved "http://192.168.3.71:4873/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
   integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
   integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
 
 
-acorn-walk@^8.2.0:
+acorn-walk@^8.0.0, acorn-walk@^8.2.0:
   version "8.3.4"
   version "8.3.4"
   resolved "http://192.168.3.71:4873/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
   resolved "http://192.168.3.71:4873/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
   integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
   integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
@@ -2156,6 +2166,11 @@ acorn@^7.1.0, acorn@^7.1.1, acorn@^7.2.0:
   resolved "http://192.168.3.71:4873/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   resolved "http://192.168.3.71:4873/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
 
+acorn@^8.0.4:
+  version "8.14.0"
+  resolved "http://192.168.3.71:4873/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
+  integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+
 acorn@^8.11.0, acorn@^8.7.0:
 acorn@^8.11.0, acorn@^8.7.0:
   version "8.13.0"
   version "8.13.0"
   resolved "http://192.168.3.71:4873/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3"
   resolved "http://192.168.3.71:4873/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3"
@@ -4233,6 +4248,11 @@ commander@^2.18.0, commander@^2.20.0:
   resolved "http://192.168.3.71:4873/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   resolved "http://192.168.3.71:4873/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
 
+commander@^7.2.0:
+  version "7.2.0"
+  resolved "http://192.168.3.71:4873/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
 commander@~2.19.0:
 commander@~2.19.0:
   version "2.19.0"
   version "2.19.0"
   resolved "http://192.168.3.71:4873/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
   resolved "http://192.168.3.71:4873/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
@@ -4884,6 +4904,11 @@ deasync@^0.1.15:
     bindings "^1.5.0"
     bindings "^1.5.0"
     node-addon-api "^1.7.1"
     node-addon-api "^1.7.1"
 
 
+debounce@^1.2.1:
+  version "1.2.1"
+  resolved "http://192.168.3.71:4873/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
+  integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
+
 debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.1, debug@^2.6.8:
 debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.1, debug@^2.6.8:
   version "2.6.9"
   version "2.6.9"
   resolved "http://192.168.3.71:4873/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   resolved "http://192.168.3.71:4873/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -5314,7 +5339,7 @@ duplexer3@^0.1.4:
   resolved "http://192.168.3.71:4873/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
   resolved "http://192.168.3.71:4873/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
   integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
   integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
 
 
-duplexer@^0.1.1:
+duplexer@^0.1.1, duplexer@^0.1.2:
   version "0.1.2"
   version "0.1.2"
   resolved "http://192.168.3.71:4873/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
   resolved "http://192.168.3.71:4873/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
   integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
   integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
@@ -6747,6 +6772,13 @@ gzip-size@^5.0.0:
     duplexer "^0.1.1"
     duplexer "^0.1.1"
     pify "^4.0.1"
     pify "^4.0.1"
 
 
+gzip-size@^6.0.0:
+  version "6.0.0"
+  resolved "http://192.168.3.71:4873/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+  integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
+  dependencies:
+    duplexer "^0.1.2"
+
 handle-thing@^2.0.0:
 handle-thing@^2.0.0:
   version "2.0.1"
   version "2.0.1"
   resolved "http://192.168.3.71:4873/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
   resolved "http://192.168.3.71:4873/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
@@ -6963,7 +6995,7 @@ html-entities@^1.3.1:
   resolved "http://192.168.3.71:4873/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
   resolved "http://192.168.3.71:4873/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
   integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
   integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
 
 
-html-escaper@^2.0.0:
+html-escaper@^2.0.0, html-escaper@^2.0.2:
   version "2.0.2"
   version "2.0.2"
   resolved "http://192.168.3.71:4873/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
   resolved "http://192.168.3.71:4873/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
   integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
   integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
@@ -9752,6 +9784,11 @@ mquery@3.2.5:
     safe-buffer "5.1.2"
     safe-buffer "5.1.2"
     sliced "1.0.1"
     sliced "1.0.1"
 
 
+mrmime@^2.0.0:
+  version "2.0.0"
+  resolved "http://192.168.3.71:4873/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4"
+  integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==
+
 ms@2.0.0:
 ms@2.0.0:
   version "2.0.0"
   version "2.0.0"
   resolved "http://192.168.3.71:4873/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
   resolved "http://192.168.3.71:4873/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -10281,7 +10318,7 @@ open@^6.3.0:
   dependencies:
   dependencies:
     is-wsl "^1.1.0"
     is-wsl "^1.1.0"
 
 
-opener@^1.5.1:
+opener@^1.5.1, opener@^1.5.2:
   version "1.5.2"
   version "1.5.2"
   resolved "http://192.168.3.71:4873/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
   resolved "http://192.168.3.71:4873/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
   integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
   integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
@@ -12580,6 +12617,15 @@ simple-swizzle@^0.2.2:
   dependencies:
   dependencies:
     is-arrayish "^0.3.1"
     is-arrayish "^0.3.1"
 
 
+sirv@^2.0.3:
+  version "2.0.4"
+  resolved "http://192.168.3.71:4873/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0"
+  integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==
+  dependencies:
+    "@polka/url" "^1.0.0-next.24"
+    mrmime "^2.0.0"
+    totalist "^3.0.0"
+
 sisteransi@^1.0.5:
 sisteransi@^1.0.5:
   version "1.0.5"
   version "1.0.5"
   resolved "http://192.168.3.71:4873/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
   resolved "http://192.168.3.71:4873/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -13447,6 +13493,11 @@ toposort@^1.0.0:
   resolved "http://192.168.3.71:4873/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
   resolved "http://192.168.3.71:4873/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
   integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==
   integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==
 
 
+totalist@^3.0.0:
+  version "3.0.1"
+  resolved "http://192.168.3.71:4873/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8"
+  integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==
+
 touch@^3.1.0:
 touch@^3.1.0:
   version "3.1.1"
   version "3.1.1"
   resolved "http://192.168.3.71:4873/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694"
   resolved "http://192.168.3.71:4873/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694"
@@ -14340,6 +14391,24 @@ webpack-bundle-analyzer@^3.8.0:
     opener "^1.5.1"
     opener "^1.5.1"
     ws "^6.0.0"
     ws "^6.0.0"
 
 
+webpack-bundle-analyzer@^4.10.2:
+  version "4.10.2"
+  resolved "http://192.168.3.71:4873/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd"
+  integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==
+  dependencies:
+    "@discoveryjs/json-ext" "0.5.7"
+    acorn "^8.0.4"
+    acorn-walk "^8.0.0"
+    commander "^7.2.0"
+    debounce "^1.2.1"
+    escape-string-regexp "^4.0.0"
+    gzip-size "^6.0.0"
+    html-escaper "^2.0.2"
+    opener "^1.5.2"
+    picocolors "^1.0.0"
+    sirv "^2.0.3"
+    ws "^7.3.1"
+
 webpack-chain@^6.4.0:
 webpack-chain@^6.4.0:
   version "6.5.1"
   version "6.5.1"
   resolved "http://192.168.3.71:4873/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206"
   resolved "http://192.168.3.71:4873/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206"
@@ -14667,7 +14736,7 @@ ws@^6.0.0, ws@^6.2.1:
   dependencies:
   dependencies:
     async-limiter "~1.0.0"
     async-limiter "~1.0.0"
 
 
-ws@^7.0.0, ws@~7.5.10:
+ws@^7.0.0, ws@^7.3.1, ws@~7.5.10:
   version "7.5.10"
   version "7.5.10"
   resolved "http://192.168.3.71:4873/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
   resolved "http://192.168.3.71:4873/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
   integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
   integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==