禁用 chrome React DevTools 以进行生产

2024-05-22

我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE_ENV。因此,我可以删除反应警告、控制台中的错误报告,甚至我的代码来禁用某些功能,例如react-addons-perf的要求。

而且效果很好。当我在 app.js 中搜索“生产”以查看是否存在这些典型条件时:

if("development" !== "production") {
    ...
}

没有什么,所以,正如我所说,它似乎运作良好。

但是,我仍然可以看到 chrome 的 React DevTools 选项卡包含所有 React 组件,就像我在开发网站上一样。如何在 Chrome 开发工具中禁用此选项卡?

这是我的任务:

var production  = process.env.NODE_ENV === 'production' ? true : false;
var environment = process.env.NODE_ENV ? process.env.NODE_ENV : 'dev';

...

var bundler = browserify({
    debug: !production,

    // These options are just for Watchify
    cache: {}, packageCache: {}, fullPaths: true
})
.require(require.resolve('./dev/client/main.js'), { entry: true })
.transform(envify({global: true, _: 'purge', NODE_ENV: environment}), {global: true})
.transform(babelify)
.transform(reactify);

var start = Date.now();
bundler.bundle()
    .on('error', function (err) {
        console.log(err.toString());
        this.emit("end");
    })
    .pipe(source('main.js'))
    .pipe(gulpif(options.uglify, streamify(uglify())))
    .pipe(gulpif(!options.debug, streamify(stripDebug())))
    .pipe(gulp.dest(options.dest))
    .pipe(notify(function () {
        console.log('Built in ' + (Date.now() - start) + 'ms');
    }));
};

根据 Github 上的一个问题,你可以在加载 React 之前添加运行单个 javascript 行来阻止它。

From #191 反应开发工具 https://github.com/facebook/react-devtools/issues/191

<script>
window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject = function () {}
</script>

然后,您可以考虑将其与您的环境条件结合起来,就像您可以在服务器端渲染中执行如下操作一样。比方说 Pug(以前称为 Jade):

#{process.env.NODE_ENV == 'production' ? "window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject = function(){}" : ""}

但是,将业务逻辑和敏感数据放回服务器仍然是一个很好的做法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 chrome React DevTools 以进行生产 的相关文章

随机推荐

  • 在 MVC 控制器内打开 websocket 通道

    有没有人有在 MVC 控制器内打开 websocket 连接的良好经验 技术栈 ASPNET Core 1 0 RC1 MVC dnx46 System Net WebSockets 为什么使用 MVC 而不是中间件 为了整体一致性 路由
  • 使用 Rgraphviz 中的 pos 参数来固定节点位置

    基于这个问题当弧与另一弧重叠时自动弯曲 https stackoverflow com questions 45721802 automatically curving an arc when it is overlapping with
  • FireDac 添加下划线 1 以区分具有相同名称的 2 个列名

    我有一个连接 2 个表的选择 因此这些表中存在具有相似名称的列 因此现在在检索结果时 FireDac 将下划线 1 添加到第二个列名称以区分这两个表 Select from Table1 inner join Table2 on Table
  • Safari 不触发表单提交

    对于一个项目 我有两个选择表单字段 它们通过 jquery 触发器 提交 发送 这在 Firefox 和 Chrome 中运行良好 但在 Safari 中没有任何反应 这是 HTML 代码
  • UIScrollView 与 UIWebViews

    stackoverflow 上似乎有很多关于这个主题的问题 但没有一个涉及 3 0 中的更新 经过几个小时的研究后 我终于发现 完全支持嵌套滚动视图 在我的例子中是滚动视图内的网页视图 但是给出的示例在http developer appl
  • 如何改善 ARKit 3.0 中的人物遮挡

    我们正在开发一个使用 ARKit 中的人物遮挡的演示应用程序 因为我们想在最终场景中添加视频 所以我们使用SCNPlanes 使用 a 渲染视频SCNBillboardConstraint以确保他们面向正确的方向 这些视频也是部分透明的 使
  • 简单的if检查多个值vb

    在Sql中我们可以像这样过滤 SELECT FROM 表名 WHERE 列名 IN firstValue secondValue 如何在VB Net中检查 有简单的方法吗 或者 只是 If variable firstValue Or va
  • Marklogic REST API 搜索最新文档版本

    我们需要使用 Marklogic 的 REST API 将 MarkLogic 搜索限制为托管文档的最新版本 我们正在使用 MarkLogic 6 使用直接 xquery 您可以使用dls documents query 作为附加查询选项
  • Thread.sleep vs Monitor.Wait vs RegisteredWaitHandle?

    以下项目有不同的目标 但我很有趣知道它们如何 暂停 问题 Thread sleep 它会影响系统性能吗 它是否会占用线程的等待时间 关于什么Monitor Wait 他们 等待 的方式有何不同 他们的等待会占用一个线程吗 关于什么Regis
  • EF6 不从数据库生成外键关联

    PROBLEM 我正在尝试使用数据库优先方法创建 EF6 模型 简单来说 我有2张桌子tblUser and tblMilkMan上有外键关系UserID柱子 但是当我创建一个新的 EDMX 图并添加 2 个表时 我看不到其中的关系 未创建
  • Socket.io 如何判断某人何时离开

    我正在使用 socket io 创建一个实时游戏 目前 当有人离开时 什么也不会发生 我想以某种方式通知服务器说谁离开了 有没有办法在用户离开时发出正确的信息 我可以让服务器每 1000 毫秒对每个人执行一次 ping 操作 或者通过其他方
  • Ruby 自定义字符串排序

    输入字符串 1654AaBcDddeeFF 输出字符串 1456acddeeABDFF 我尝试过的代码 test array 1654AaBcDddeeFF each byte do char test array lt lt char e
  • Silverlight 打印中“对话框必须由用户启动”安全异常的另一个技巧

    当我尝试在 Silverlight 中打印一些内容时 我收到臭名昭著的 对话框必须由用户启动 安全异常 正如您所看到的 该对话框尽可能由用户启动 约翰爸爸也帮不了我太多 http johnpapa net silverlight print
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • 使用 JQuery 更改表附加行中某些单元格的背景颜色

    我正在向表中追加一行 如何更改该行中一组单元格的背景颜色 假设列有 25 列 从 17 到 22 的列需要更改背景颜色 这是我到目前为止所尝试的 table1 append row1 row1 children td not td eq 0
  • 使用 PHP 获取 URL 的 FB 点赞、分享和评论 - 无限制 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何使用 PHP 简单地获取 URL 中的点赞 分享和评论数量 使用 FQL 或 graph facebook com 的方法不再有效
  • 使用 VBA 将 Excel 工作表导入 Access

    我正在尝试使用一些简单的 VBA 代码将 Excel 电子表格导入到 Access 中 我遇到的问题是 Excel 文件中有 2 个工作表 我需要导入第二个工作表 是否可以在VBA代码中指定所需的工作表 Private Sub Comman
  • 升级到 Visual Studio 2012 后,链接文件出现 MSBuild 错误“CSC:错误 CS2001:无法找到源文件 'x'”

    自动升级 Net 4 0 Web 应用程序的项目文件以与 Visual Studio 2012 一起使用后 一开始一切正常 但是在编译时出现很多错误 如下所示 说明 找不到源文件 文件路径 文件 CSC 当尝试在 VS2012 的开发人员命
  • 在我授予许可后,表面视图不显示相机

    public View onCreateView LayoutInflater inflater Nullable ViewGroup container Bundle savedInstanceState View view inflat
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很