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 补丁