Состояние модулей Vuex не обновляется при горячей перезагрузке - PullRequest
0 голосов
/ 27 ноября 2018

У меня настроена горячая перезагрузка и динамическая загрузка моих модулей vuex.

файл store.js - секция горячего обновления

if (module.hot) {
  // accept actions and mutations as hot modulesLoader
  module.hot.accept([
    './store/modules/index.js',
    './store/helpers/global-actions',
    './store/helpers/global-mutations',
    ...modulePaths,
    // './store/helpers/global-actions',
  ], () => {
    let newModules = require('./store/modules').modules
    store.hotUpdate({
      actions: require('./store/helpers/global-actions'),
      mutations: require('./store/helpers/global-mutations'),
      modules: newModules,
    })
  })
}

файл modules / index.js

const requireModule = require.context('.', true, /index.js$/)
const modules = {}
const modulePaths = []

requireModule.keys().forEach(fileName => {
  if (fileName === './index.js') {
    modulePaths.push(fileName.replace('./', './store/modules/'))
    return
  } else {
    let moduleName = fileName.match(/(?<=\/)\w*(?=\/)/g)[0]
    modulePaths.push(fileName.replace('./', './store/modules/'))
    modules[moduleName] =
      {
        namespaced: false,
        ...requireModule(fileName),
      }
  }
})

export {modulePaths, modules}

В основном, этот код выполняет динамическую загрузку папок с файлом index.js в виде модулей (где имя модуля - имя_фолдера).

Если я обновляю действия модуля, или получатели, или мутации, все работает как положено, я получаю новые действия, добавленные вхранить, а также мутации, когда любой из модулей обновляется.

Единственное, что я не могу заставить работать - это изменять состояние модулей при обновлении.Поэтому, если я изменю состояние модулей, оно не будет отражено.Это нормальное поведение?Или я что-то не так делаю?

...