I have a vuex store and i'd like to apply code splitting on it.
Following this tutorial I tried this:
import Vuex from 'vuex'
import Vue from 'vue'
import createLogger from 'vuex/dist/logger'
Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production'
const store = new Vuex.Store({
strict: debug,
plugins: debug ? [createLogger] : [],
state: {
loading: false
},
mutations: {
toggleLoading: (state) => {
state.loading = !state.loading
}
},
getters: {
loading: state => state.loading
},
actions: {
toggleLoading: ({commit}) => {
commit('toggleLoading')
}
}
})
import('./modules/userModule').then(userModule => {
store.registerModule('user', userModule)
})
import('./modules/tenantsModule').then(tenantsModule => {
store.registerModule('tenants', tenantsModule)
})
import('./modules/updatesModule').then(updatesModule => {
store.registerModule('updates', updatesModule)
})
export default store
But the application fails :
webpack-internal:///24:739 [vuex] unknown getter: user
What am i doing wrong?
usergetter, which you haven't defined. Either bythis.$store.getters.userormapGetters(['user']). Do you access a getter like that anywhere else in your code?usermodule. I understand now. Yes, it's definitely because that module hasn't been loaded at the time you're trying to access it. Not sure what the solution is though...