Производительность не определена - запуск приложения реакции с webpack-dev-server

Я пытаюсь измерить производительность реакции с помощью Perf addon, но когда я пытаюсь запустить Perf.start() в своей консоли, я получаю сообщение об ошибке: Uncaught ReferenceError: Perf is not defined(…)

Стоит отметить, что я установил плагин через npm, и в моем файле main.js есть require('react-addons-perf').

У меня есть предположение, что эта проблема связана с тем, что я запускаю сервер webpack-dev и глобальная переменная не отображается должным образом, но, к сожалению, не знаю, как правильно к ней подойти. Может ли кто-нибудь помочь мне с этим?

Вот содержимое моего файла webpack.config на codepen для справки.


person Gleb Kostyunin    schedule 22.01.2016    source источник


Ответы (2)


Я не знаю, могут ли быть изменения в вашем webpack.config, которые могут изменить область видимости или сделать переменную доступной через глобальную область, но одним из быстрых способов было бы просто использовать

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

Это должно предоставить вам доступ через консоль.

Но нужно сказать, что, возможно, он не предназначен для глобального раскрытия vars глобальные переменные в requireJS

И, возможно, попробуйте найти способ вызвать Perf.start() и Perf.stop() из вашего кода, а не из консоли!

person larrydahooster    schedule 22.01.2016
comment
Отлично, спасибо, это сработало и кажется меньше работы, чем решение, которое я придумал, поэтому отмечаю его как ответ. - person Gleb Kostyunin; 22.01.2016

Нашел решение, которое сработало для меня:

  1. Установите модуль npm expose-loader.
  2. Добавьте следующую строку в ваши загрузчики конфигурации webpack:

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

Этот модуль expose-loader — отличный способ выставить экспорт модулей в глобальную область.

person Gleb Kostyunin    schedule 22.01.2016
comment
Альтернативный синтаксис: внутри кода JS выполните require('expose?Perf!react-addons-perf'); - person Josh Kelley; 17.03.2016