import camelCase from 'lodash/camelCase'
const requireModule = require.context('.', false, /\.js$/)
const modules = {}
requireModule.keys().forEach(fileName => {
// Don't register index.js
if (fileName === './index.js') return
const moduleName = camelCase(fileName.replace(/(\.\/|\.js)/g, ''))
modules[moduleName] = {
namespaced: true,
...requireModule(fileName)
}
})
export default modules
import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import state from './state'
import actions from './actions'
import mutations from './mutations'
import modules from './modules'
Vue.use(Vuex)
export default new Vuex.Store({
modules,
state,
getters,
actions,
mutations
})
...
import Store from './store'
...
new Vue({
Store,
Router,
el: '#app'
})
source: https://www.youtube.com/watch?v=7YZ5DwlLSt8&t=614s