From 7bbb33344fc6cb17524bc5440a370af9b31c2500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Sun, 10 Apr 2022 18:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/router/routes.js | 7 ++++--- web/src/views/plugins/index.js | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/web/src/router/routes.js b/web/src/router/routes.js index 76a47c2..5456741 100644 --- a/web/src/router/routes.js +++ b/web/src/router/routes.js @@ -2,7 +2,7 @@ import layoutHeaderAside from '@/layout/header-aside' import { checkPlugins } from '@/views/plugins/index.js' // 由于懒加载页面太多的话会造成webpack热更新太慢,所以开发环境不使用懒加载,只有生产环境使用懒加载 const _import = require('@/libs/util.import.' + process.env.NODE_ENV) - +const pluginImport = require('@/libs/util.import.plugin') /** * 在主框架内显示 */ @@ -189,11 +189,12 @@ const frameOut = [ /** * 第三方登录 */ -if (checkPlugins('third-party-login')) { +const pluginsType = checkPlugins('third-party-login') +if (pluginsType) { frameOut.push({ path: '/thirdPartyLogin', name: 'login', - component: _import('plugins/third-party-login/src/login/index') + component: pluginsType === 'local' ? _import('plugins/third-party-login/src/login/index') : pluginImport('third-party-login/src/login/index') }) } /** diff --git a/web/src/views/plugins/index.js b/web/src/views/plugins/index.js index e6e56d6..91b1d41 100644 --- a/web/src/views/plugins/index.js +++ b/web/src/views/plugins/index.js @@ -1,5 +1,3 @@ -import Vue from 'vue' - function importAll (r) { const __modules = [] r.keys().forEach(key => { @@ -11,10 +9,19 @@ function importAll (r) { } export const checkPlugins = async function install (pluginName) { - if (!window.pluginsAll) { - plugins(Vue) + let pluginsList + pluginsList = importAll(require.context('./', true, /index\.js$/)) + if (pluginsList && pluginsList.indexOf(pluginName) !== -1) { + // 本地插件 + return 'local' } - return (window.pluginsAll && window.pluginsAll.indexOf(pluginName) !== -1) + pluginsList = importAll(require.context('@great-dream/', true, /index\.js$/)) + if (pluginsList && pluginsList.indexOf(pluginName) !== -1) { + // node_modules 封装插件 + return 'plugins' + } + // 未找到插件 + return undefined } export const plugins = async function install (Vue, options) {