react-hot-loader 与外部 configureStore 使用 redux-saga 抛出“regeneratorRuntime 未定义”

Posted

技术标签:

【中文标题】react-hot-loader 与外部 configureStore 使用 redux-saga 抛出“regeneratorRuntime 未定义”【英文标题】:react-hot-loader with external configureStore throw "regeneratorRuntime is not defined" using redux-saga 【发布时间】:2017-09-26 00:39:45 【问题描述】:

我正在将 react-hot-loader 添加到我的项目中。我的项目使用 webpack2、babel7、react-hot-loader3 和 webpack-dev-server。启动应用程序时出现“regeneratorRuntime 未定义”错误。我使用this boilerplate 作为示例。 我没有使用下面的代码,因为我的 configureStore 是外部的,我没有组合减速器的访问权限(商店应用了 redux-saga 中间件)。

if (module.hot) 
        module.hot.accept('../reducer', () =>
            store.replaceReducer(require('../reducer')) // eslint-disable-line global-require
        );
    

据我所知,regeneratorRuntime 是从 redux-saga 使用的 es6 编译生成器的 babel,这有关系吗?当我无法将 store 设置为 internal 并且无法访问 reducer 时该怎么办。

【问题讨论】:

【参考方案1】:

你需要使用 babel-plugin-transform-runtime。

$ npm install --save-dev babel-plugin-transform-runtime
$ npm install --save babel-runtime

在.babelrc中,添加运行时插件:


  "plugins": [
    ["transform-runtime", 
      "polyfill": false,
      "regenerator": true
    ]
  ]

【讨论】:

以上是关于react-hot-loader 与外部 configureStore 使用 redux-saga 抛出“regeneratorRuntime 未定义”的主要内容,如果未能解决你的问题,请参考以下文章

无法让多应用 webpack 配置与 react-hot-loader 一起使用

无法使 react-hot-loader 和 webpack-dev-server 与 react-router 一起工作

react-hot-loader: 未检测到 react-????-dom 补丁

react-hot-loader 和 webpack-dev-server 不会重新加载更改

如何让 react-hot-loader 使用动态导入?

react-hot-loader 和 webpack 不工作