Perf 未定义 - 运行 应用程序与 webpack-dev-server 反应

Perf is not defined - running react app with webpack-dev-server

我正在尝试使用 Perf addon 来衡量反应性能,但是当我尝试在我的控制台中 运行 Perf.start() 时,我收到一个错误:Uncaught ReferenceError: Perf is not defined(…)

值得一提的是,我已经通过 npm 安装了插件,并且在我的 main.js 文件中有一个 require('react-addons-perf')

我猜这个问题与我 运行 正在使用 webpack-dev-server 并且全局变量没有正确公开有关,但不幸的是不知道如何正确公开接近它。有人可以帮我吗?

这是我在 codepen 上的 webpack.config 文件内容,供参考。

我不知道您的 webpack.config 中是否有更改可能会更改范围或公开 var 以通过全局范围访问,但一种快速的方法是简单地使用

global.Perf = require('react-addons-perf');

这应该会授予您通过控制台的访问权限。

但必须要说的是,它可能不打算全局公开变量 global variables in requireJS

也许可以尝试找到一种从您的代码而不是控制台触发 Perf.start() 和 Perf.stop() 的方法!

找到了一个对我有用的解决方案:

  1. 安装 npm expose-loader module
  2. 将以下行添加到您的 webpack 配置加载器:

    { test: require.resolve("react-addons-perf"), loader: "expose?Perf" }
    

这个 expose-loader 模块是将模块导出公开到全局范围的好方法。