在不生产时添加反应中间件

时间:2018-01-23 14:25:54

标签: reactjs react-redux redux-middleware

问题很简单,

如何在不生产时添加react或redux中间件(如Logger)。

我不希望用户能够在控制台选项卡中看到日志信息。

2 个答案:

答案 0 :(得分:2)

假设您有2个中间件loggerthunk,并且当您不在logger时希望添加production,则可以使用以下代码执行此操作:

const middleware = [thunk];
if (process.env.NODE_ENV !== 'production') {
    middleware.push(logger);
}

您可以使用以下代码将NODE_ENV设置为production

set NODE_ENV=production

或使用PowerShell:

$env:NODE_ENV="production"

设置在package.json您需要安装cross-env,更多信息,请点击此处:How to set Environment variables from within package.json [Node.js] ):

"scripts": {    
    "build": "cross-env NODE_ENV=production webpack -p"
}

答案 1 :(得分:0)

没有Redux方法可以做到这一点。由您来实现此逻辑。您可以使用window.location.origin来了解应用运行的位置。如果它在localhost或您的暂存环境中运行,则不应添加记录器。当然,如果您在服务器端渲染,则必须检查window是否可用。如果没有,我想可以添加记录器。看看它是如何在redux-devtools https://github.com/zalmoxisus/redux-devtools-extension/blob/master/npm-package/developmentOnly.js#L7

中完成的