Skip to content

Bower, the browser package manager

Bower defines itself as a browser package manager, and it’s a powerful tool to manage your project assets: javascript, CSS and images.

Warning: this post is old and might not reflect the current state of the art

Bower defines itself as a browser package manager, and it’s a powerful tool to manage your project assets: JavaScript, CSS and images. Here I’ll only talk about JavaScript as it’s my main use case.

Let’s start, install it.

npm install bower -g

Now create a .bowerrc file in your project root (where you’ll invoke bower) or in your home folder, and add some customization: for example here we tell bower to install packages in the subfolder javascript/components, and use a file named ‘bower.json’ to store its data.

{
  "directory" : "javascript/components",
  "json" : "bower.json"
}

The bower.json file is the same thing as the package.json file for npm packages in Node.js, except it’s for assets.

Let’s start by adding to your project something popular: jQuery.

You can install it by typing

bower install --save jquery

And by referencing the newly installed package in your HTML code:

<script src="javascript/components/jquery/jquery.js"></script>

The –save option tells bower to add the entry to the bower.json file, so it will be easy to recreate the same packages structure later, just like with NPM in Node.js.

Once this package is installed, it’s super easy to jump to a newer jQuery release:

bower update jquery

The bower project maintains a list of popular packages on their servers so you can install them easily. Here you can find a list of them, ordered by popularity.

Of course there are thousands of projects not included, and you can install every git-powered software by using the git:// protocol, like:

bower install git://github.com/desandro/masonry

or just any path

bower install http://foo.com/jquery.awesome-plugin.js

Bower is smart enough to install a specific tag or commit of a package you’re interested in, if you need a previous version for compatibility or you don’t need to upgrade to a newer package:

bower install git://github.com/components/jquery.git#~1.8.1

Uninstalling a packages is simple as well:

bower uninstall jquery

I really like using Bower especially when it comes to upgrade dependencies from time to time, instead of wandering across multiple Github projects (when we’re lucky enough to have a Github page), a simple bower update will take care of everything, except making sure everything still works on your project. That’s our job :-)


download all my books for free

  • javascript handbook
  • typescript handbook
  • css handbook
  • node.js handbook
  • astro handbook
  • html handbook
  • next.js pages router handbook
  • alpine.js handbook
  • htmx handbook
  • react handbook
  • sql handbook
  • git cheat sheet
  • laravel handbook
  • express handbook
  • swift handbook
  • go handbook
  • php handbook
  • python handbook
  • cli handbook
  • c handbook

subscribe to my newsletter to get them

Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing flavio@flaviocopes.com. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.

Related posts about devtool: