redux-devtools缺少反应

时间:2017-01-25 05:28:49

标签: reactjs webpack

我是一个比较新的反应和webpack,我刚刚选择了一个新的项目。要配置DevTool,我们有:

export function renderDevTools(store) {
    if (__DEV__) {
        let {DevTools, DebugPanel, LogMonitor} = require('redux-devtools/lib/react');
        return (
            <DebugPanel top right bottom>
            <DevTools store={store} monitor={LogMonitor} />
            </DebugPanel>
        );
    }
    return null;
}

从node_module,我可以看到:

\node_modules\redux-devtools\lib\

createDevTools.js
index.js
persistState.js

但此文件夹中没有react.js,因此运行代码将给出:

ERROR in ./app/utils/devTools.js
Module not found: Error: Cannot resolve module 'redux-devtools/lib/react'

我试过了

npm install redux-devtools

但文件仍然缺少反应。这是遗留代码,当我尝试运行它时,它无法正常工作。我想知道出了什么问题?

1 个答案:

答案 0 :(得分:2)

此代码适用于redux-devtools@2。在redux-devtools@3监视器中,redux-devtools-log-monitorredux-devtools-dock-monitor分离,您还需要安装并添加到项目中,如the docs所示。

此外,您必须将__DEV__设置为true webpack.config(开发和制作应该不同):

plugins: [
  new webpack.DefinePlugin({
    '__DEV__': true
  })
],

更简单的方法是不将其直接包含在您的应用中,而是使用Chrome / Firefox extension。然后,您可以将其添加到Redux商店with just one line of code

const store = createStore(reducer, /* preloadedState, */
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

在这种情况下,请务必删除与Redux DevTools相关的所有其他内容。

如果您正在使用扩展程序,您也可以在生产without any edge cases中使用它,否则请务必将其从生产包中删除。