我是一个比较新的反应和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
但文件仍然缺少反应。这是遗留代码,当我尝试运行它时,它无法正常工作。我想知道出了什么问题?
答案 0 :(得分:2)
此代码适用于redux-devtools@2
。在redux-devtools@3
监视器中,redux-devtools-log-monitor
和redux-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中使用它,否则请务必将其从生产包中删除。