Bower: Install 2 versions of jQuery

TerminalBowerMultiple Versions

Terminal Problem Overview


How would I go about installing 2 versions of jQuery using bower? I want to have v2.0 as well as 1.9.1 for browser support fallback

The issue I'm having is that if you run bower install jquery#1.9.1 jquery#2.0.0 the first version gets overwritten by the second because they are the same component

Terminal Solutions


Solution 1 - Terminal

According to the bower docs

> Bower offers several ways to install packages: > > # Using the dependencies listed in the current directory's bower.json > bower install > # Using a local or remote package > bower install > # Using a specific version of a package > bower install # > # Using a different name and a specific version of a package > bower install =#

You can install two different versions of jQuery like so:

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

Or, if you prefer to set that up in a bower.json

"dependencies": {
	"jquery-legacy": "jquery#1.10",
	"jquery-modern": "jquery#2"
}

Solution 2 - Terminal

In the dependencies part of your bower.json you can have something like this:

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

One shouldn't normally have to do this, but sometimes you have to maintain / migrate an existing website that (for whatever reason) uses different versions of jquery in different pages!

Solution 3 - Terminal

From the command line, if you just want the latest 1.x and 2.x versions, you can loosen the constraints in the answer above.

So:

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

would become:

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

Solution 4 - Terminal

bower.json:

This is how i did it...

"dependencies": {
    ...
    "jquery": "2.0.0",
    "jquery-old": "1.9.1"
    ...
}

Second version, can be any version, old or new. You just have to add a different key. Like jquery-old

Install

bower install --save jquery-old

Use

Now you can use either one of the jquery version:

<script type="text/javascript" src="path/to/bower/directory/jquery/dist/jquery.min.js"></script>

<script type="text/javascript" src="path/to/bower/directory/jquery-old/dist/jquery.min.js"></script>

Bonus

"dependencies": {
    ...
    "jquery": "2.0.0",
    "jquery-old": "1.9.1"
    "jquery-latest": "^3.3.1"
    ...
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdam CoulombeView Question on Stackoverflow
Solution 1 - TerminalbuzzedwordView Answer on Stackoverflow
Solution 2 - TerminalAndreas AndreouView Answer on Stackoverflow
Solution 3 - TerminalSean DeNigrisView Answer on Stackoverflow
Solution 4 - TerminalpegasuspectView Answer on Stackoverflow