webpack
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
}, {});
export default new Vuex.Store({
state: {},
mutations: {},
getters: {},
actions: {},
modules,
});
}, {});
vite
const modules: any[] = [];
const modulesFiles = import.meta.glob('./modules/**/*.ts', { eager: true, import: 'default' });
Object.keys(modulesFiles).forEach(key => {
const mod = modulesFiles[key];
const modList = Array.isArray(mod) ? mod : [mod];
modules.push(...modList);
})
export default modules;