不在生产环境时添加 React 中间件

Add react middleware when not in production

问题很简单,

如何在不在生产环境时添加 React 或 Redux 中间件(如 Logger)。

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

假设你有 2 个中间件,loggerthunk,当你不在 production 中时你想添加 logger,你可以使用以下方法做到这一点代码:

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, more info right here: How to set Environment variables from within package.json [Node.js]):

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

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

中完成的