SlideShare a Scribd company logo
BOWER
_by Oleksii Prohonnyi
Bower vs NPM
Bower vs NPM
 NPM and Bower are both dependency management tools. But the
main difference between both is NPM is used for installing Node.js
modules but Bower.js is used for managing front end components
like HTML,CSS,JS etc.
 Bower, unlike NPM, can have multiple files (e.g. .js, .css, .html,
.png, .ttf) which are considered the main file(s). Bower semantically
considers these main files, when packaged together, a component.
Getting started
Install Bower
 Bower is a command line utility. Install it with npm.
$ npm install -g bower
 Bower requires node, npm and git.
 Latest release: v1.7.6
 See more: http://bower.io/
Packages
Configuration
 Packages are defined by a manifest file bower.json. This is similar
to Node’s package.json or Ruby’s Gemfile.
 Interactively create a bower.json with bower init:
$ bower init
 Detailed specification of bower.json file can be found in bower/spec
repository.
Dependencies maintenance
 Bower installs packages to bower_components/ by default.
$ bower install <package>
 Using bower install <package> --save will add <package> to your
project’s bower.json dependencies array.
$ bower install <package> --save
 Similarly, using bower install <package> --save-dev will add
<package> to your project’s bower.json devDependencies array.
$ bower install <package> --save-dev
Dependencies maintenance
 A package can be a GitHub shorthand, a Git endpoint, a URL, and
more.
$ bower install
$ bower install jquery
$ bower install desandro/masonry
$ bower install
git://github.com/user/package.git
$ bower install http://example.com/script.js
Search packages
 If you want to check that the asset you want is a Bower package
you can do a search:
$ bower search <package-name>
 Search bower packages using web interface: http://bower.io/search/
Use packages
 It is recommended to use Bower together with Grunt, RequireJS,
Yeoman, and lots of other tools or build own workflow with the API.
 It is also possible to use the installed packages directly, like this:
<script src=“
bower_components/jquery/dist/jquery.min.js
"></script>
Register packages
 Registering your package allows others to install it with a short
name, like bower install <my-package-name>.
$ bower register <my-package-name> <git-endpoint>
 Now anyone can run bower install <my-package-name>, and get
your library installed. The Bower registry does not have
authentication or user management at this point in time. It’s on a
first come, first served basis.
Unregister packages
 You can unregister packages with bower unregister.
 You first need to authenticate with GitHub with bower login to
confirm you are a contributor to the package repo.
bower login
? Username:
? Password:
bower unregister <package>
 You’ll likely want to bower cache clean after your change.
Commands
Commands list
 cache
 help
 home
 info
 init
 install
 link
 list
 login
 lookup
 prune
 register
 search
 update
 uninstall
 unregister
 version
Programmatic API
 Bower provides a powerful, programmatic API. All commands can
be accessed through the bower.commands object.
 var bower = require('bower');
bower.commands
.install(['jquery'], { save: true }, { /*
custom config */ })
.on('end', function (installed) {
console.log(installed);
});
Configuration
.bowerrc file
 Bower can be configured using JSON in a .bowerrc file. For example:
{
"directory": "app/components/",
"analytics": false,
"timeout": 120000,
"registry": {
"search": [
"http://localhost:8000",
"https://bower.herokuapp.com"
]
}
}
More options
 Full .bowerrc file specification could be found:
http://bower.io/docs/config/#bowerrc-specification
 One can use environment variables in .bowerrc, using the following
syntax ${ENV_VAR}.
"storage": {"packages":“/path/to/${USER}/packages"}
 Bower provides 3 separate hooks that can be used to trigger other
automated tools during Bower usage: preinstall, postinstall,
preuninstall.
Resolvers and tools
Resolvers
 For example, resolvers can be used for:
 Handling Mercurial or Bazaar repositories
 Speeding up checkouts of services like GitLab or Bitbucket
 Allowing to use packages from npm or component.io
 Proxying downloads through 3rd party service like Artifactory
 Implementing custom private registry (hosted on GitHub?)
 Adding authentication support for private GitHub Enterprise
instances
 See more: http://bower.io/docs/pluggable-resolvers/
Resolvers usage
 Pluggable Resolver is just an npm package that you install as
devDependency in the package.json of your repository, or install
globally with npm install -g.
{
"resolvers": [
"bitbucket-resolver",
"github-enterprise-resolver"
]
}
Tools
 Bower is used together with other tools to integrate with all sorts of
setups and workflows.
 Grunt
 Gulp
 Rails & Ruby
 Java
 Apps & IDEs
 Others
 See more: http://bower.io/docs/tools/
THANK YOU FOR ATTENTION
Oleksii Prohonnyi
facebook.com/oprohonnyi
linkedin.com/in/oprohonnyi

More Related Content

ODP
Introduction to Pelican
Chengjen Lee
 
PPTX
A Brief Introduction to Writing and Understanding Puppet Modules
David Phillips
 
PPTX
Creating beautiful puppet modules with puppet-lint
Spencer Owen
 
ODP
Amazon EC2 + Rails
John Ward
 
PPT
eZ Publish cluster unleashed revisited
Bertrand Dunogier
 
PDF
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
PROIDEA
 
PDF
Czym jest webpack i dlaczego chcesz go używać?
Marcin Gajda
 
PPTX
Drupal cambs ansible for drupal april 2015
Ryan Brown
 
Introduction to Pelican
Chengjen Lee
 
A Brief Introduction to Writing and Understanding Puppet Modules
David Phillips
 
Creating beautiful puppet modules with puppet-lint
Spencer Owen
 
Amazon EC2 + Rails
John Ward
 
eZ Publish cluster unleashed revisited
Bertrand Dunogier
 
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
PROIDEA
 
Czym jest webpack i dlaczego chcesz go używać?
Marcin Gajda
 
Drupal cambs ansible for drupal april 2015
Ryan Brown
 

What's hot (20)

KEY
GuiceCon 2011 - Sisu
Stuart McCulloch
 
PDF
Functional Hostnames and Why they are Bad
Puppet
 
PDF
Puppet Intfrastructure as Code
Samir Chekkal
 
PDF
Docker & CoreOS at Utah Gophers
Josh Braegger
 
KEY
Clojure + MongoDB on Heroku
Naoyuki Kakuda
 
DOC
Php Server Var
arvind34
 
PDF
Heroku Tips and Hacks
Luan Nguyen
 
PDF
Copying files between linux machines using scp and ssh without linux user pas...
Ravi Kumar Lanke
 
PPTX
Puppet barcampexercises.jzt
som_nangia
 
PDF
Puppet HackDay/BarCamp New Delhi Exercises
Julie Tsai
 
PDF
Hadoop installation steps
Mayank Sharma
 
PDF
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)
I Goo Lee
 
PDF
Using docker for data science - part 2
Calvin Giles
 
PPTX
От sysV к systemd
Denis Kovalev
 
PDF
Using python and docker for data science
Calvin Giles
 
PDF
Bento lunch talk
Cournapeau David
 
PPTX
Installing odoo v8 from github
Antony Gitomeh
 
PPT
Sls01 Lecture02 Linux In Practice
Qasim Khawaja
 
PPTX
Drupal from scratch
Rovic Honrado
 
PDF
EC CUBE 3.0.x installation guide
Nguyễn Đoàn Quốc Phong
 
GuiceCon 2011 - Sisu
Stuart McCulloch
 
Functional Hostnames and Why they are Bad
Puppet
 
Puppet Intfrastructure as Code
Samir Chekkal
 
Docker & CoreOS at Utah Gophers
Josh Braegger
 
Clojure + MongoDB on Heroku
Naoyuki Kakuda
 
Php Server Var
arvind34
 
Heroku Tips and Hacks
Luan Nguyen
 
Copying files between linux machines using scp and ssh without linux user pas...
Ravi Kumar Lanke
 
Puppet barcampexercises.jzt
som_nangia
 
Puppet HackDay/BarCamp New Delhi Exercises
Julie Tsai
 
Hadoop installation steps
Mayank Sharma
 
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)
I Goo Lee
 
Using docker for data science - part 2
Calvin Giles
 
От sysV к systemd
Denis Kovalev
 
Using python and docker for data science
Calvin Giles
 
Bento lunch talk
Cournapeau David
 
Installing odoo v8 from github
Antony Gitomeh
 
Sls01 Lecture02 Linux In Practice
Qasim Khawaja
 
Drupal from scratch
Rovic Honrado
 
EC CUBE 3.0.x installation guide
Nguyễn Đoàn Quốc Phong
 
Ad

Viewers also liked (20)

PPTX
Grunt and Bower
George Estebe
 
PDF
Dev2Dev - Microformats
Dzmitry Ivashutsin
 
PPTX
Introduction to Gulp
apdhtg6
 
PDF
Intro to Gulp
Matt Brunt
 
PDF
Bower & bitbucket
nanusefue
 
PPTX
Cycle.js overview
Oleksii Prohonnyi
 
PPTX
Dive into Angular, part 3: Performance
Oleksii Prohonnyi
 
PPTX
Front-end rich JavaScript application creation (Backbone.js)
Oleksii Prohonnyi
 
PPTX
Conference DotJS 2015 Paris review
Oleksii Prohonnyi
 
PPTX
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
PPTX
Как создать сайт за 2 часа? (Wordpress)
Oleksii Prohonnyi
 
PPT
Разработка веб-сайта. Сайт. Зачем он?
Oleksii Prohonnyi
 
PPTX
Exploradores.caroes
maryespitia
 
PPTX
Chorme devtools
傑倫 鍾
 
PPTX
Asm.js introduction
Oleksii Prohonnyi
 
PPTX
Moment.js overview
Oleksii Prohonnyi
 
PPTX
Utility libraries to make your life easier
Oleksii Prohonnyi
 
PPTX
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
Oleksii Prohonnyi
 
PPTX
OpenLayer's basics
Oleksii Prohonnyi
 
PPTX
Dive into Angular, part 1: Introduction
Oleksii Prohonnyi
 
Grunt and Bower
George Estebe
 
Dev2Dev - Microformats
Dzmitry Ivashutsin
 
Introduction to Gulp
apdhtg6
 
Intro to Gulp
Matt Brunt
 
Bower & bitbucket
nanusefue
 
Cycle.js overview
Oleksii Prohonnyi
 
Dive into Angular, part 3: Performance
Oleksii Prohonnyi
 
Front-end rich JavaScript application creation (Backbone.js)
Oleksii Prohonnyi
 
Conference DotJS 2015 Paris review
Oleksii Prohonnyi
 
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
Как создать сайт за 2 часа? (Wordpress)
Oleksii Prohonnyi
 
Разработка веб-сайта. Сайт. Зачем он?
Oleksii Prohonnyi
 
Exploradores.caroes
maryespitia
 
Chorme devtools
傑倫 鍾
 
Asm.js introduction
Oleksii Prohonnyi
 
Moment.js overview
Oleksii Prohonnyi
 
Utility libraries to make your life easier
Oleksii Prohonnyi
 
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
Oleksii Prohonnyi
 
OpenLayer's basics
Oleksii Prohonnyi
 
Dive into Angular, part 1: Introduction
Oleksii Prohonnyi
 
Ad

Similar to Bower introduction (20)

PDF
Bower & Grunt - A practical workflow
Riccardo Coppola
 
PDF
Angular Part 3 (Basic knowledge)
Rohit Singh
 
PPTX
Bower - A package manager for the web
Larry Nung
 
PPTX
Introduction to bower
Jitendra Zaa
 
PPTX
Docker in production
Mateusz Kutyba
 
PDF
Web development - technologies and tools
Yoann Gotthilf
 
PDF
Gr8conf EU 2018 - Bring you infrastructure under control with Infrastructor
Stanislav Tiurikov
 
PDF
Bring your infrastructure under control with Infrastructor
Stanislav Tiurikov
 
PDF
Dependency management in Magento with Composer
Manuele Menozzi
 
PPTX
Bower Fundamentals
Mindfire Solutions
 
PPTX
Improving build solutions dependency management with webpack
NodeXperts
 
PDF
Front-end tools
Gleb Vinnikov
 
PDF
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
Horacio Gonzalez
 
PDF
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
PDF
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
NETWAYS
 
PPTX
tips for generating docker containers complaints with the devsecops
Thierry Gayet
 
PPTX
PHP on Heroku: Deploying and Scaling Apps in the Cloud
Salesforce Developers
 
PDF
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
PPTX
Tutorial 1: Your First Science App - Araport Developer Workshop
Vivek Krishnakumar
 
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Angular Part 3 (Basic knowledge)
Rohit Singh
 
Bower - A package manager for the web
Larry Nung
 
Introduction to bower
Jitendra Zaa
 
Docker in production
Mateusz Kutyba
 
Web development - technologies and tools
Yoann Gotthilf
 
Gr8conf EU 2018 - Bring you infrastructure under control with Infrastructor
Stanislav Tiurikov
 
Bring your infrastructure under control with Infrastructor
Stanislav Tiurikov
 
Dependency management in Magento with Composer
Manuele Menozzi
 
Bower Fundamentals
Mindfire Solutions
 
Improving build solutions dependency management with webpack
NodeXperts
 
Front-end tools
Gleb Vinnikov
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
Horacio Gonzalez
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
NETWAYS
 
tips for generating docker containers complaints with the devsecops
Thierry Gayet
 
PHP on Heroku: Deploying and Scaling Apps in the Cloud
Salesforce Developers
 
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Vivek Krishnakumar
 

More from Oleksii Prohonnyi (14)

PPTX
Dive into Angular, part 4: Angular 2.0
Oleksii Prohonnyi
 
PPTX
Dive into Angular, part 2: Architecture
Oleksii Prohonnyi
 
PPTX
JavaScript Presentation Frameworks and Libraries
Oleksii Prohonnyi
 
PPTX
Introduction to D3.js
Oleksii Prohonnyi
 
PPTX
Code review process with JetBrains UpSource
Oleksii Prohonnyi
 
PPTX
Google Chrome DevTools features overview
Oleksii Prohonnyi
 
PPTX
BEM methodology overview
Oleksii Prohonnyi
 
PPTX
Front-end development introduction (JavaScript). Part 2
Oleksii Prohonnyi
 
PPTX
Front-end development introduction (HTML, CSS). Part 1
Oleksii Prohonnyi
 
PPTX
Test-driven development & Behavior-driven development basics
Oleksii Prohonnyi
 
PPTX
JavaScript Coding Guidelines
Oleksii Prohonnyi
 
PPTX
Database Optimization (MySQL)
Oleksii Prohonnyi
 
PPTX
PHPCS (PHP Code Sniffer)
Oleksii Prohonnyi
 
PPTX
Usability of UI Design (motivation, heuristics, tools)
Oleksii Prohonnyi
 
Dive into Angular, part 4: Angular 2.0
Oleksii Prohonnyi
 
Dive into Angular, part 2: Architecture
Oleksii Prohonnyi
 
JavaScript Presentation Frameworks and Libraries
Oleksii Prohonnyi
 
Introduction to D3.js
Oleksii Prohonnyi
 
Code review process with JetBrains UpSource
Oleksii Prohonnyi
 
Google Chrome DevTools features overview
Oleksii Prohonnyi
 
BEM methodology overview
Oleksii Prohonnyi
 
Front-end development introduction (JavaScript). Part 2
Oleksii Prohonnyi
 
Front-end development introduction (HTML, CSS). Part 1
Oleksii Prohonnyi
 
Test-driven development & Behavior-driven development basics
Oleksii Prohonnyi
 
JavaScript Coding Guidelines
Oleksii Prohonnyi
 
Database Optimization (MySQL)
Oleksii Prohonnyi
 
PHPCS (PHP Code Sniffer)
Oleksii Prohonnyi
 
Usability of UI Design (motivation, heuristics, tools)
Oleksii Prohonnyi
 

Recently uploaded (20)

PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PPTX
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
Presentation about variables and constant.pptx
safalsingh810
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Exploring AI Agents in Process Industries
amoreira6
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 

Bower introduction

  • 3. Bower vs NPM  NPM and Bower are both dependency management tools. But the main difference between both is NPM is used for installing Node.js modules but Bower.js is used for managing front end components like HTML,CSS,JS etc.  Bower, unlike NPM, can have multiple files (e.g. .js, .css, .html, .png, .ttf) which are considered the main file(s). Bower semantically considers these main files, when packaged together, a component.
  • 5. Install Bower  Bower is a command line utility. Install it with npm. $ npm install -g bower  Bower requires node, npm and git.  Latest release: v1.7.6  See more: http://bower.io/
  • 7. Configuration  Packages are defined by a manifest file bower.json. This is similar to Node’s package.json or Ruby’s Gemfile.  Interactively create a bower.json with bower init: $ bower init  Detailed specification of bower.json file can be found in bower/spec repository.
  • 8. Dependencies maintenance  Bower installs packages to bower_components/ by default. $ bower install <package>  Using bower install <package> --save will add <package> to your project’s bower.json dependencies array. $ bower install <package> --save  Similarly, using bower install <package> --save-dev will add <package> to your project’s bower.json devDependencies array. $ bower install <package> --save-dev
  • 9. Dependencies maintenance  A package can be a GitHub shorthand, a Git endpoint, a URL, and more. $ bower install $ bower install jquery $ bower install desandro/masonry $ bower install git://github.com/user/package.git $ bower install http://example.com/script.js
  • 10. Search packages  If you want to check that the asset you want is a Bower package you can do a search: $ bower search <package-name>  Search bower packages using web interface: http://bower.io/search/
  • 11. Use packages  It is recommended to use Bower together with Grunt, RequireJS, Yeoman, and lots of other tools or build own workflow with the API.  It is also possible to use the installed packages directly, like this: <script src=“ bower_components/jquery/dist/jquery.min.js "></script>
  • 12. Register packages  Registering your package allows others to install it with a short name, like bower install <my-package-name>. $ bower register <my-package-name> <git-endpoint>  Now anyone can run bower install <my-package-name>, and get your library installed. The Bower registry does not have authentication or user management at this point in time. It’s on a first come, first served basis.
  • 13. Unregister packages  You can unregister packages with bower unregister.  You first need to authenticate with GitHub with bower login to confirm you are a contributor to the package repo. bower login ? Username: ? Password: bower unregister <package>  You’ll likely want to bower cache clean after your change.
  • 15. Commands list  cache  help  home  info  init  install  link  list  login  lookup  prune  register  search  update  uninstall  unregister  version
  • 16. Programmatic API  Bower provides a powerful, programmatic API. All commands can be accessed through the bower.commands object.  var bower = require('bower'); bower.commands .install(['jquery'], { save: true }, { /* custom config */ }) .on('end', function (installed) { console.log(installed); });
  • 18. .bowerrc file  Bower can be configured using JSON in a .bowerrc file. For example: { "directory": "app/components/", "analytics": false, "timeout": 120000, "registry": { "search": [ "http://localhost:8000", "https://bower.herokuapp.com" ] } }
  • 19. More options  Full .bowerrc file specification could be found: http://bower.io/docs/config/#bowerrc-specification  One can use environment variables in .bowerrc, using the following syntax ${ENV_VAR}. "storage": {"packages":“/path/to/${USER}/packages"}  Bower provides 3 separate hooks that can be used to trigger other automated tools during Bower usage: preinstall, postinstall, preuninstall.
  • 21. Resolvers  For example, resolvers can be used for:  Handling Mercurial or Bazaar repositories  Speeding up checkouts of services like GitLab or Bitbucket  Allowing to use packages from npm or component.io  Proxying downloads through 3rd party service like Artifactory  Implementing custom private registry (hosted on GitHub?)  Adding authentication support for private GitHub Enterprise instances  See more: http://bower.io/docs/pluggable-resolvers/
  • 22. Resolvers usage  Pluggable Resolver is just an npm package that you install as devDependency in the package.json of your repository, or install globally with npm install -g. { "resolvers": [ "bitbucket-resolver", "github-enterprise-resolver" ] }
  • 23. Tools  Bower is used together with other tools to integrate with all sorts of setups and workflows.  Grunt  Gulp  Rails & Ruby  Java  Apps & IDEs  Others  See more: http://bower.io/docs/tools/
  • 24. THANK YOU FOR ATTENTION