基于require.context 实现动态加载vue模块,解决每次新增vuex的modules文件和请求文件、权限型路由动态加载模块等问题。
// TODO: 获取当前页面下所有文件路径
let context = require.context('./', false, /\.js$/);
// TODO: 获取文件路径
let fileList = context.keys();
let list = {};
let filter = ["mock", "config"];
// TODO: 过滤非必要加载文件
fileList.filter((item) => {
return !filter.filter(fd => item.includes(fd)).length;
}).forEach(item => {
// TODO: 加载文件
let me = context(item);
let data = me.default || me;
Object.assign(list, data);
});
// TODO: 此处针对的是服务请求模块,具体导出内容需要根据自己的实际业务需求导出。
export default { ...list };