Ich habe eine sehr einfache mixin reagieren, die jQuery verwendet ein Ereignis auslösenReagieren Komponente jQuery verwenden, ohne erfordern - Scherz Einheit testet
MyMixin = {
trackStructEvent: function() {
args = Array.prototype.slice.call(arguments);
$('body').trigger('myEvent', args);
}
module.exports = MyMixin
Diese in die Haupt-Website als Teil einer neuen Reihe von Komponenten importiert wird unter Verwendung von browserifizieren. Da die Haupt-Site, die diese Komponenten enthält, immer jQuery enthält, möchte ich jQuery nicht mit browserify benötigen, da es dupliziert wird.
Dies ist kein Problem in Bezug auf das Verhalten - aber es verursacht Probleme beim Ausführen von Jest zum Komponententest die Komponenten mit diesem Mixin werfen den Fehler.
Ich weiß, dass ich das beheben kann, indem ich jQuery durch browserify, aber das wird 2 Kopien in meine Website laden.
Gibt es irgendeine Möglichkeit im Scherz, meiner reagierenden Komponente zu sagen, dass jQuery bereits im Fenster existiert und sich nicht darum kümmern muss?
Haben Sie versucht, 'var $ = window.jQuery'? – David
Eine andere Möglichkeit ist die Verwendung der 'externen' Option in browserify – David
@David - die Verwendung von' external' schien in meiner Komponente zu funktionieren, aber ich konnte es nicht mit dem Scherz spielen. Für jetzt habe ich hinzugefügt, dass "$" vor dem Aufruf definiert ist. Ich werde es nicht als Antwort geben, da es keine wirkliche Lösung für das Problem ist. Es lässt mich einfach meine Scherze passieren –