Hot Reloading

    1. // store.js
    2. import Vue from 'vue'
    3. import Vuex from 'vuex'
    4. // Load all modules.
    5. function loadModules() {
    6. const context = require.context("./modules", false, /([a-z_]+)\.js$/i)
    7. const modules = context
    8. .keys()
    9. .map((key) => ({ key, name: key.match(/([a-z_]+)\.js$/i)[1] }))
    10. .reduce(
    11. ...modules,
    12. [name]: context(key).default
    13. }),
    14. {}
    15. )
    16. return { context, modules }
    17. }
    18. const { context, modules } = loadModules()
    19. Vue.use(Vuex)
    20. modules
    21. })
    22. if (module.hot) {
    23. // Hot reload whenever any module changes.
    24. module.hot.accept(context.id, () => {
    25. const { modules } = loadModules()
    26. store.hotUpdate({
    27. modules
    28. })
    29. })
    30. }