2015-06-04 5 views
12

Ich suche react-0.13.3.js und eine Sache, die ich nicht erarbeiten kann. Am Anfang der Quelle gibt es eine Reihe von dereq() Anrufe.Was ist `_dereq _()` innerhalb Reagieren?

'use strict'; 

var EventPluginUtils = _dereq_(19); 
var ReactChildren = _dereq_(32); 
var ReactComponent = _dereq_(34); 
var ReactClass = _dereq_(33); 

Aber nirgendwo sehe ich eine Implementierung für diese Funktion. Was macht es und wie funktioniert es? Und vor allem, wo wird es erklärt?

aktualisieren

Ich warte immer noch für eine umfassendere Antwort zu akzeptieren. Meine Hauptfrage ist was funktioniert die _dereq_ Funktion tun und wie funktioniert es.

+1

Siehe hier programmiert werden: https://github.com/calvinmetcalf/derequ Ire/Probleme/25. – glortho

+0

Das ist die Antwort genau dort. Wenn Sie es aufschreiben könnten, würde ich es akzeptieren :) –

+0

Okay, ich füge es meiner Antwort unten hinzu. – glortho

Antwort

6

Dies ist wahrscheinlich derequire kombiniert mit browserify (oder anderen Bundler?) Modul-IDs. Es ist eine Möglichkeit, require in Ihrem Ausgabebündel umzubenennen, um Kollisionen zu vermeiden.

Lesen Sie hier für weitere Informationen: https://github.com/calvinmetcalf/derequire/issues/25

Die Grundidee ist, dass verschiedene Modullader require anders handhaben. "Derequire" ist eine Strategie, um Ihre Anforderungen über ein anderes Schlüsselwort an Ihren Kontext zu binden.

1

Es hat mit amd module loader zu tun. _dereq_ ist das erste Argument, also ist es die require Funktion.

+1

Können Sie näher erläutern, was es tut, wenn ich sage 'var EventPluginUtils = _dereq_ (19);'? Was macht '19', ist es eine Möglichkeit, etwas zu priorisieren? –

+0

Es ist der Bündel Index/ID. Siehe zum Beispiel die Option --full-paths von browserify: https://github.com/substack/node-browserify#usage – glortho

1

Sie müssen line 4 in der Quelle erweitern; es ist require.

1: [function(_dereq_, module, exports) { 
0

Ich habe auf diese Frage gestolpert, nach einigen Recherchen, ich glaube, der Hauptzweck dieser Funktion hat, ist eine ähnliche npm wie Funktion auf Ihrem Browser zu bauen und Modul Abhängigkeit von den Import verschiedener Funktionen handhaben.

, wenn Sie geradeaus bis zum Ende des IIFE gehen (ca. 20k ~ Linien)

Sie eine Struktur ähnlich sehen wird unter

(function e(t, n, r) { 
    function s(o, u) { 
     ... 
    } 

     ... 
}) ({... //blah blah blah, all the funcitons 
    }, {}, [1]) 


the variable t is all the functions modules 
the variable n is an empty array 
the variable r is 1 here 

so erfordert das Modul in der richtigen Reihenfolge aufgerufen wird, und ist aufgebaut aus dem Index 1, von dort, es ist ziemlich selbsterklärend, alle Bedürfnisse Abhängigkeiten korrekt aus dem Array am Anfang

1: [function (_dereq_, module, exports) {.... 
}, {"106": 106, "23": 23, "35": 35, "45": 45, "63": 63}], 
Verwandte Themen