2014-05-15 11 views
14

Ich verwende Q in einem Projekt, und ich benutze Bower, um meine JS-Abhängigkeiten zu verwalten. Ich schließe Q 2.0.0 mit Bower in bower.jsonQ 2.0.0 installiert mit Bower verursacht Uncaught ReferenceError: require ist nicht definiert

"dependencies" : { 
    "q": "~2.0.0" 
} 

In meinem index.html, ich schließe Q mit einem Script-Tag

<script src="bower_components/q/q.js"></script> 

Wenn ich die Seite zu laden, ich sehe in der Konsole:

Uncaught ReferenceError: require is not defined q.js:43

Linie 43 von q.js:

require("collections/shim"); 

Was fehlt mir hier? Soll ich mit Browserify oder require.js arbeiten? Ich erwartete, dass die Bibliothek durch einfaches Verwenden eines Tags zugänglich ist.

Antwort

33

Bower ist nicht sehr schlau bei der Auswahl von Versionen. Zufällig gibt es einen 2.0-Release-Zug, der überhaupt nicht mit Bower kompatibel ist. Sie möchten q # 1.0.1 speziell installieren.

+0

Danke, wäre es einfach besser q von github zu nehmen und es so einzuschließen, damit ich 2.0 benutzen kann? – binarygiant

+4

Ich empfehle zu diesem Zeitpunkt nicht den Release-Zug v2, besonders auf Bower. Es hat sich nicht genug für den allgemeinen Gebrauch verfestigt. –

+0

Ich traf das gleiche Problem. Zuerst dachte ich, dass q eine starke Abhängigkeit von requriejs hätte (was verwirrend war) und fuhr fort, mein Projekt zu verlangen, nur um das zu entdecken. #latenightcoding –