0

问题很简单,

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

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

4

2 回答 2

3

假设你有 2 个中间件,logger并且thunk你想logger 在你不在的时候添加production,你可以使用以下代码来做到这一点:

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

您可以设置NODE_ENVproduction使用以下代码:

set NODE_ENV=production

或使用 PowerShell:

$env:NODE_ENV="production"

在内部设置package.json您需要安装cross-env,更多信息在这里:如何从 package.json [Node.js] 中设置环境变量):

"scripts": {    
    "build": "cross-env NODE_ENV=production webpack -p"
}
于 2018-01-23T14:27:00.000 回答
0

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

于 2018-01-23T14:42:13.350 回答