2016-01-22 4 views
6

Ich versuche, die Leistung mit Perf addon zu messen, aber wenn ich versuche, Perf.start() in meiner Konsole zu starten, erhalte ich einen Fehler: Uncaught ReferenceError: Perf is not defined(…)Perf ist nicht definiert - laufende react app mit webpack-dev-server

Erwähnenswert, dass ich das Plugin über npm installiert habe und ein require('react-addons-perf') in meiner main.js Datei sitzt.

Ich habe eine Vermutung, dass dieses Problem auf die Tatsache, dass ich einen webpack-dev-Server ausgeführt wird und die globale Variable nicht richtig belichtet, aber leider hav keine Ahnung, wie man richtig nähern. Kann mir jemand dabei helfen?

Hier ist meine webpack.config Datei Inhalt auf Codepen für die Referenz.

Antwort

4

Ich weiß nicht, ob es Änderungen in Ihrem webpack.config sein könnte, dass der Scoping oder aussetzen eine var über den globalen Umfang zugänglich sein, ändern könnte, aber eine schnelle Art und Weise einfach sein würde, verwenden

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

Dies sollte Ihnen Zugriff über die Konsole gewähren.

Aber man muss sagen, dass es vielleicht nicht beabsichtigt ist, Vars global zu belichten global variables in requireJS

Und vielleicht versuchen, einen Weg zu finden, den Perf.start() und Perf.stop() im Code auslösen, nicht die Konsole!

+0

Großartig, danke, es hat funktioniert und scheint weniger Arbeit, als die Lösung, die ich kam, so dass es als eine Antwort markiert. –

3

eine Lösung gefunden, die für mich gearbeitet:

  1. Installieren der npm expose-loader module
  2. die folgende Zeile in webpack Config Lader hinzufügen:

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

Diese belichten-loader Modul ist eine gute Möglichkeit, Modulexport in den globalen Geltungsbereich zu bringen.

+1

Alternative Syntax: in Ihrem JS-Code benötigen Sie ('expose? Perf! React-addons-perf'); ' –

Verwandte Themen