Bower: Installieren Sie 2 Versionen von jQuery

76

Wie würde ich vorgehen, um 2 Versionen von jQuery mit bower zu installieren ? Ich möchte v2.0 sowie 1.9.1 für die Browserunterstützung Fallback haben

Das Problem, das ich habe, ist, dass beim Ausführen bower install jquery#1.9.1 jquery#2.0.0die erste Version von der zweiten überschrieben wird, da es sich um dieselbe Komponente handelt

Adam Coulombe
quelle
Hoffe das kann dir helfen, forum.jquery.com/topic/…
dreamweiver
@dreamweiver Ich brauche nicht zwei Versionen gleichzeitig laufen, ich möchte zwei separate Versionen mit Bower installieren
Adam Coulombe
Tags bearbeiten, da dies nicht wirklich eine jQuery-Frage ist.
Blazemonger

Antworten:

67

Im Abhängigkeitsteil Ihrer bower.json können Sie Folgendes haben:

"dependencies": {
    "jquery": "2.0.0",
    "jquery-1.9.1": "http://code.jquery.com/jquery-1.9.1.js"
}

Normalerweise sollte man das nicht tun müssen, aber manchmal muss man eine vorhandene Website pflegen / migrieren, die (aus welchem ​​Grund auch immer) verschiedene Versionen von jquery auf verschiedenen Seiten verwendet!

Andreas Andreou
quelle
8
was ist mit:"jquery-1.9.1": "jquery#1.9.1"
Mike Causer
1
"Abhängigkeiten": {"jquery": "2.0.0", "jquery-1.9.1": " code.jquery.com/jquery-1.9.1.js "} ---------- Dies Die Antwort funktioniert einwandfrei. Wenn ich den Code minimiere und hässlich mache, ist nur eine Version verfügbar, und der Code, der eine andere Version verwendet, wird beschädigt. Gibt es eine Lösung dafür?
Akhil Xavier
158

Laut den Laubendokumenten

Bower bietet verschiedene Möglichkeiten, um Pakete zu installieren:

# Using the dependencies listed in the current directory's bower.json
bower install
# Using a local or remote package
bower install <package>
# Using a specific version of a package
bower install <package>#<version>
# Using a different name and a specific version of a package
bower install <name>=<package>#<version>

Sie können zwei verschiedene Versionen von jQuery wie folgt installieren:

bower install jquery-legacy=jquery#1.10 jquery-modern=jquery#2

Oder, wenn Sie das lieber in a einrichten möchten bower.json

"dependencies": {
    "jquery-legacy": "jquery#1.10",
    "jquery-modern": "jquery#2"
}
Buzzedword
quelle
Vielen Dank! Gut zu wissen, ist das eine neu hinzugefügte Funktion? Ich glaube nicht, dass dies eine Möglichkeit war, als ich ursprünglich nach einer Antwort suchte
Adam Coulombe
@AdamCoulombe sieht so aus, als ob dies ab Version 1.0.0 hinzugefügt wurde. Es war relativ lange stabil (softwaremäßig), war aber in keiner Vorabversion von bower enthalten.
Buzzedword
Dies sollte die gewählte Antwort sein
gotofritz
Auf jeden Fall sollte dies die Antwort sein
Kaosmos
Das hilft wirklich. Folgefrage: Wie legen Sie fest, welche jQuery-Version in einer anderen Bibliothek verwendet werden muss? Ich habe eine offene Frage hier .
JohnnyQ
12

Wenn Sie über die Befehlszeile nur die neuesten Versionen 1.x und 2.x möchten, können Sie die Einschränkungen in der obigen Antwort lösen .

Damit:

bower install jquery-legacy=jquery#1.10 jquery-modern=jquery#2

würde werden:

bower install jquery-legacy=jquery#^1 jquery-modern=jquery

Sean DeNigris
quelle
4
Wie die PHP / Packagist-Community jetzt lernt, bower install jquery-legacy=jquery#^1 jquery-modern=jquerysetzt die "moderne" Version - obwohl sie lockerer ist - immer noch keine Obergrenze. Eine bessere lose Einschränkung wäre: bower install jquery-legacy=jquery#^1 jquery-modern=jquery#^2da die Moderne mit einer Obergrenze gehalten wird, um größere Bruchänderungen zu verhindern. Wenn 2.x nicht mehr "modern" ist, würde ich davon ausgehen, dass Sie den Paketnamen trotzdem ändern würden.
Buzzedword
0

bower.json:

So habe ich es gemacht ...

"Abhängigkeiten": {
    ...
    "jquery": "2.0.0",
    " jquery-old ": "1.9.1"
    ...
}

Die zweite Version kann eine beliebige alte oder neue Version sein. Sie müssen nur einen anderen Schlüssel hinzufügen. Wie jquery-alt

Installieren

Laube installieren - speichern jquery-alt

Verwenden

Jetzt können Sie eine der jquery-Versionen verwenden:

<script type = "text / javascript" src = "Pfad / zu / bower / Verzeichnis / jquery / dist / jquery.min.js"> </ script>

<script type = "text / javascript" src = "Pfad / zu / bower / Verzeichnis / jquery-old /dist/jquery.min.js"> </ script>

Bonus

"Abhängigkeiten": {
    ...
    "jquery": "2.0.0",
    " jquery-old ": "1.9.1"
    " jquery-latest ": "^ 3.3.1"
    ...
}

Pegasuspect
quelle