优化: 前端插件优化

pull/47/MERGE
李强 2022-04-10 18:28:05 +08:00
parent 8340ef2d56
commit 7bbb33344f
2 changed files with 16 additions and 8 deletions

View File

@ -2,7 +2,7 @@ import layoutHeaderAside from '@/layout/header-aside'
import { checkPlugins } from '@/views/plugins/index.js' import { checkPlugins } from '@/views/plugins/index.js'
// 由于懒加载页面太多的话会造成webpack热更新太慢所以开发环境不使用懒加载只有生产环境使用懒加载 // 由于懒加载页面太多的话会造成webpack热更新太慢所以开发环境不使用懒加载只有生产环境使用懒加载
const _import = require('@/libs/util.import.' + process.env.NODE_ENV) 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({ frameOut.push({
path: '/thirdPartyLogin', path: '/thirdPartyLogin',
name: 'login', 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')
}) })
} }
/** /**

View File

@ -1,5 +1,3 @@
import Vue from 'vue'
function importAll (r) { function importAll (r) {
const __modules = [] const __modules = []
r.keys().forEach(key => { r.keys().forEach(key => {
@ -11,10 +9,19 @@ function importAll (r) {
} }
export const checkPlugins = async function install (pluginName) { export const checkPlugins = async function install (pluginName) {
if (!window.pluginsAll) { let pluginsList
plugins(Vue) 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) { export const plugins = async function install (Vue, options) {