Bladeren bron

feat: qiankun适配调整&移除多余依赖

cuiyalong 3 jaren geleden
bovenliggende
commit
57a3dce3bc
7 gewijzigde bestanden met toevoegingen van 48 en 67 verwijderingen
  1. 8 16
      config/cdn.js
  2. 1 3
      package.json
  3. 9 10
      src/main.js
  4. 7 5
      src/router/router.js
  5. 3 1
      src/store/index.js
  6. 2 2
      src/views/work-desktop/WorkDesktop.vue
  7. 18 30
      vue.config.js

+ 8 - 16
config/cdn.js

@@ -2,22 +2,14 @@ exports.cdn = {
   css: [
     // '//unpkg.com/element-ui@2.10.1/lib/theme-chalk/index.css'
   ],
-  jsdelivr: [
-    '//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
-    '//cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js',
-    '//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
-    '//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
-    '//cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js',
-    '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
-    '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
-  ],
   js: [
-    '//cdn-common.jianyu360.cn/cdn/lib/vue/2.6.11/vue.min.js',
-    '//cdn-common.jianyu360.cn/cdn/lib/vue-router/3.1.5/vue-router.min.js',
-    '//cdn-common.jianyu360.cn/cdn/lib/vuex/3.4.0/vuex.min.js',
-    '//cdn-common.jianyu360.cn/cdn/lib/axios/0.19.2/axios.min.js',
-    '//cdn-common.jianyu360.cn/cdn/lib/echarts/4.8.0/echarts.min.js',
-    '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
-    '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
+    '//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/vue-router/3.1.5/vue-router.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/vuex/3.4.0/vuex.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/axios/0.19.2/axios.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/lodash/4.17.21/lodash.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/echarts/4.8.0/echarts.min.js',
+    // '//cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js',
+    '//cdn-common.jianyu360.com/cdn/lib/moment/2.29.1/min/moment.min.js'
   ]
 }

+ 1 - 3
package.json

@@ -18,10 +18,9 @@
     "core-js": "^3.4.3",
     "echarts": "4.8.0",
     "element-ui": "^2.15.1",
+    "jquery": "^3.6.0",
     "lodash": "^4.17.21",
     "moment": "^2.29.1",
-    "single-spa-vue": "^1.5.4",
-    "systemjs-webpack-interop": "^1.1.2",
     "v-charts": "1.19.0",
     "vue": "^2.6.10",
     "vue-cookies": "^1.7.4",
@@ -44,7 +43,6 @@
     "eslint-plugin-promise": "^4.2.1",
     "eslint-plugin-standard": "^4.0.0",
     "eslint-plugin-vue": "^6.2.2",
-    "jquery": "^3.6.0",
     "sass": "^1.26.5",
     "sass-loader": "^8.0.2",
     "vue-cli-plugin-single-spa": "^1.0.1",

+ 9 - 10
src/main.js

@@ -6,7 +6,6 @@ import { easySubAppRegister } from '@jianyu/easy-inject-qiankun'
 import VueCookies from 'vue-cookies'
 import { Loading, Message, MessageBox } from 'element-ui'
 import echarts from 'echarts'
-// import axios from 'axios'
 import Toast from './components/toast/index'
 import '@/utils/'
 import '@/utils/common'
@@ -21,15 +20,15 @@ Vue.prototype.$alert = MessageBox.alert
 Vue.prototype.$confirm = MessageBox.confirm
 Vue.config.productionTip = false
 
-// 正式环境下屏蔽console.log
-if (process.env.NODE_ENV === 'production') {
-  const print = window.console.log
-  if (window.localStorage.getItem('log') === '1') {
-    window.console.log = print
-  } else {
-    window.console.log = () => null
-  }
-} else {}
+// 正式环境下屏蔽console.log(主应用已屏蔽)
+// if (process.env.NODE_ENV === 'production') {
+//   const print = window.console.log
+//   if (window.localStorage.getItem('log') === '1') {
+//     window.console.log = print
+//   } else {
+//     window.console.log = () => null
+//   }
+// } else {}
 
 export const { bootstrap, mount, unmount } = easySubAppRegister({
   Vue,

+ 7 - 5
src/router/router.js

@@ -1,11 +1,13 @@
 import Vue from 'vue'
-import Router from 'vue-router'
+import VueRouter from 'vue-router'
 import routers from './routers'
 import vipRouters from './svip-routers'
 
-Vue.use(Router)
+if (process.env.NODE_ENV !== 'production') {
+  Vue.use(VueRouter)
+}
 
-const router = new Router({
+const router = new VueRouter({
   mode: 'history',
   base: window.__RouterBase || process.env.VUE_APP_BASE_URL,
   routes: [
@@ -22,8 +24,8 @@ const router = new Router({
   }
 })
 
-const originalPush = Router.prototype.push
-Router.prototype.push = function push (location) {
+const originalPush = VueRouter.prototype.push
+VueRouter.prototype.push = function push (location) {
   return originalPush.call(this, location).catch(err => err)
 }
 

+ 3 - 1
src/store/index.js

@@ -4,7 +4,9 @@ import Vuex from 'vuex'
 import user from './user'
 import forcast from './forcast'
 
-Vue.use(Vuex)
+if (process.env.NODE_ENV !== 'production') {
+  Vue.use(Vuex)
+}
 
 export default new Vuex.Store({
   state: {

+ 2 - 2
src/views/work-desktop/WorkDesktop.vue

@@ -16,10 +16,10 @@
       <HomeList :loading="setload.loading4" ref="sublist4" @getDetail="getDetail" :stepList="stepList" @thisAnnouncement="thisAnnouncement" @addSet="addSet" @linkMore="linkMore" :getlist="followList" model="model-4">
         <span slot="header">项目关注</span>
       </HomeList>
-      <HomeList :loading="setload.loading5" ref="sublist5" v-if="info.power.indexOf(10) !== -1" @getDetail="getDetail" @addSet="addSet" @linkMore="linkMore" :getlist="weekList" model="model-week">
+      <HomeList :loading="setload.loading5" ref="sublist5" v-if="info.power && info.power.indexOf(10) !== -1" @getDetail="getDetail" @addSet="addSet" @linkMore="linkMore" :getlist="weekList" model="model-week">
         <span slot="header">周报</span>
       </HomeList>
-      <HomeList :loading="setload.loading6" ref="sublist6" v-if="info.power.indexOf(10) !== -1" @getDetail="getDetail" @addSet="addSet" @linkMore="linkMore" :getlist="monthList" model="model-month">
+      <HomeList :loading="setload.loading6" ref="sublist6" v-if="info.power && info.power.indexOf(10) !== -1" @getDetail="getDetail" @addSet="addSet" @linkMore="linkMore" :getlist="monthList" model="model-month">
         <span slot="header">月报</span>
       </HomeList>
     </div>

+ 18 - 30
vue.config.js

@@ -6,10 +6,10 @@ const external = {
   'vue-router': 'VueRouter',
   vuex: 'Vuex',
   axios: 'axios',
-  // echarts: 'echarts',
-  jquery: '$',
   lodash: '_',
-  moment: 'moment'
+  echarts: 'echarts',
+  // moment: 'moment',
+  jquery: '$'
 }
 
 module.exports = {
@@ -87,37 +87,26 @@ module.exports = {
   chainWebpack: config => {
     // single-spa
     if (!process.env.VUE_APP_ALONE) {
-
       if (process.env.NODE_ENV === 'production') {
-          // 生产环境配置
-          // config.externals(external)
-          // config.plugin('html').tap(args => {
-          //   // html中添加cdn
-          //   args[0].cdn = cdn
-          //   return args
-          // })
-          // config.output.filename('./js/[name].[chunkhash:8].js')
-          config.output.filename = function (pathData) {
-            return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js';
-          };
-          config.output.chunkFilename('./js/[name].[chunkhash:8].js');
-          // config.output.chunkFilename = function (pathData) {
-          //   console.log(JSON.stringify(pathData.chunk), '11')
-          //   return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js';
-          // };
+        // 生产环境配置
+        config.externals(external)
+        config.plugin('html').tap(args => {
+          // html中添加cdn
+          args[0].cdn = cdn
+          return args
+        })
 
-          config.optimization.minimize(true)
-            .minimizer('terser')
-            .tap(args => {
-              let { terserOptions } = args[0];
-              terserOptions.compress.drop_console = true;
-              terserOptions.compress.drop_debugger = true;
-              return args
-            });
+        config.optimization.minimize(true)
+          .minimizer('terser')
+          .tap(args => {
+            const { terserOptions } = args[0]
+            terserOptions.compress.drop_console = true
+            terserOptions.compress.drop_debugger = true
+            return args
+          })
       } else {
         config.devServer.set('inline', false)
         config.devServer.set('hot', true)
-        config.output.filename('js/[name].js')
       }
     }
 
@@ -128,7 +117,6 @@ module.exports = {
         .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
     }
   },
-  filenameHashing: false,
   configureWebpack: {
     output: {
       library: 'bigMemberSubApp',