功能变化: 支持插件动态导入store
parent
2dfb4c80a9
commit
68047d3436
|
@ -2,11 +2,11 @@ import Vue from 'vue'
|
||||||
import Vuex from 'vuex'
|
import Vuex from 'vuex'
|
||||||
|
|
||||||
import d2admin from './modules/d2admin'
|
import d2admin from './modules/d2admin'
|
||||||
|
import { getStoreModules } from '@/views/plugins'
|
||||||
Vue.use(Vuex)
|
Vue.use(Vuex)
|
||||||
|
// 创建一个空的modules对象
|
||||||
|
const modules = { d2admin: d2admin }
|
||||||
|
Object.assign(modules, getStoreModules())
|
||||||
export default new Vuex.Store({
|
export default new Vuex.Store({
|
||||||
modules: {
|
modules
|
||||||
d2admin
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -78,3 +78,39 @@ export const plugins = async function install (Vue, options) {
|
||||||
window.pluginsAll = components
|
window.pluginsAll = components
|
||||||
return components
|
return components
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getStoreModules = function (Vue, options) {
|
||||||
|
// 获取每个插件的Store文件并进行注册
|
||||||
|
if (window.storeModules) return
|
||||||
|
const storeModules = {}
|
||||||
|
let components = []
|
||||||
|
components = components.concat(importAll(require.context('./', true, /index\.js$/)))
|
||||||
|
components = components.concat(importAll(require.context('@great-dream/', true, /index\.js$/)))
|
||||||
|
components = Array.from(new Set(components))
|
||||||
|
components.filter(async (key, index) => {
|
||||||
|
try {
|
||||||
|
const Module = require('@/views/plugins/' + key + '/src/store/index.js')
|
||||||
|
// 注册组件
|
||||||
|
if (Module.default) {
|
||||||
|
storeModules[key] = Module.default
|
||||||
|
console.log(`[${key}]store注册成功`)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
} catch (exception) {
|
||||||
|
try {
|
||||||
|
const Module = require('@great-dream/' + key + '/src/store/index.js')
|
||||||
|
// 注册组件
|
||||||
|
if (Module.default) {
|
||||||
|
storeModules[key] = Module.default
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
} catch (exception) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
window.storeModules = storeModules
|
||||||
|
return storeModules
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue