不在生产环境时添加 React 中间件
Add react middleware when not in production
问题很简单,
如何在不在生产环境时添加 React 或 Redux 中间件(如 Logger)。
我不希望用户能够在控制台选项卡中看到日志信息。
假设你有 2 个中间件,logger
和 thunk
,当你不在 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
中完成的
问题很简单,
如何在不在生产环境时添加 React 或 Redux 中间件(如 Logger)。
我不希望用户能够在控制台选项卡中看到日志信息。
假设你有 2 个中间件,logger
和 thunk
,当你不在 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