使用browserify、redux和react路线重新加载热模块

使用browserify、redux和react路线重新加载热模块,redux,browserify,hot-module-replacement,Redux,Browserify,Hot Module Replacement,我更喜欢browserify而不是webpack,但browserify环境中有一个问题我无法解决。我正在使用react、redux和react路由,我愿意让热模块重新加载,就像react热加载程序为网页包环境提供的一样。我正在使用livereactload来实现这一点(也尝试了browserify hmr),问题是它不适用于redux。它的redux示例()在新克隆上不起作用。有可能吗?有人能给我一些必要的修改来应用到这个例子中,让它工作吗 另外,看看这个问题我正在使用它,但是作为一个watc

我更喜欢browserify而不是webpack,但browserify环境中有一个问题我无法解决。我正在使用react、redux和react路由,我愿意让热模块重新加载,就像react热加载程序为网页包环境提供的一样。我正在使用livereactload来实现这一点(也尝试了browserify hmr),问题是它不适用于redux。它的redux示例()在新克隆上不起作用。有可能吗?有人能给我一些必要的修改来应用到这个例子中,让它工作吗


另外,看看这个问题

我正在使用它,但是作为一个watchify插件:plugin(require('livereactload')),它可以正常工作

我确实更改了LiveReactload::Bundle并更新了页面,但也出现了以下警告:browser.js:51警告:[react router]您无法更改;它将被忽略

它仍然可以“本地”重新加载,但它不是“真正的”热重新加载,因为很多东西仍然被重新渲染,没有达到我想要的效果

我们只需要添加以下内容来配置存储:

export default function configureStore(initialState) {
  const store = createStoreWithMiddleware(rootReducer, initialState);

  // React hot reload
  if (module.onReload) {
    module.onReload(() => {
      const nextReducer = require('../reducers');
      store.replaceReducer(nextReducer.default || nextReducer);
      // return true to indicate that this module is accepted and
      // there is no need to reload its parent modules
      return true;
    });
  }

  return store;
}

我使用它,但作为一个watchify插件:plugin(require('livereactload')),它可以正常工作

我确实更改了LiveReactload::Bundle并更新了页面,但也出现了以下警告:browser.js:51警告:[react router]您无法更改;它将被忽略

它仍然可以“本地”重新加载,但它不是“真正的”热重新加载,因为很多东西仍然被重新渲染,没有达到我想要的效果

我们只需要添加以下内容来配置存储:

export default function configureStore(initialState) {
  const store = createStoreWithMiddleware(rootReducer, initialState);

  // React hot reload
  if (module.onReload) {
    module.onReload(() => {
      const nextReducer = require('../reducers');
      store.replaceReducer(nextReducer.default || nextReducer);
      // return true to indicate that this module is accepted and
      // there is no need to reload its parent modules
      return true;
    });
  }

  return store;
}

我的
redux
问题是我没有使用
react-proxy@1.x
nor
babel-plugin-react-transform
,因此我的组件没有包装在代理中。 如果您在未使用
react proxy
babel plugin react transform的情况下使用新版本的livereactload,则会引发错误请看以下内容:


我的
react route
问题是,我在route指令中使用了一个定义为箭头函数的组件。显然,
livereactload
不支持这一点。它通过使用类组件而不是箭头函数来解决。这里的解释:

我的
redux
问题是我没有使用
react-proxy@1.x
nor
babel-plugin-react-transform
,因此我的组件没有包装在代理中。 如果您在未使用
react proxy
babel plugin react transform的情况下使用新版本的livereactload,则会引发错误请看以下内容:


我的
react route
问题是,我在route指令中使用了一个定义为箭头函数的组件。显然,
livereactload
不支持这一点。它通过使用类组件而不是箭头函数来解决。此处说明:

谢谢您提供的信息。我解决了我在回答中描述的问题。谢谢你提供的信息。我解决了我在回答中描述的问题。