Code Monkey home page Code Monkey logo

bundler-bower's Introduction

bundler-bower

Build Status Dependency Status Code Climate Coverage Status Gem Version

Bower support for bundler. You can use assets from bower directly in Gemfile

Requirements

  • node
  • bower (>= 0.10.0) installed with npm
  • ruby >= 1.9

Installation

Execute:

gem install 'bundler-bower'

Add this line to your application's Gemfile:

require "bundler/bower"

Usage

Add to your Gemfile require method.

# Gemfile
source 'https://rubygems.org'
require 'bundler/bower'

# ...

You can use DSL from bower-rails. Click here for details.

Usage with Gemfile

You can use asset method directly in your Gemfile.

# Gemfile
source 'https://rubygems.org'
require 'bundler/bower'

gem 'rails'
asset 'backbone', '0.9'

Usage with Bowerfile

You can use Bowerfile from bower-rails. This file should be in the same directory as the Gemfile.

# Gemfile
source 'https://rubygems.org'
require 'bundler/bower'

gem 'rails'

And Bowerfile

# Bowerfile

asset 'backbone', '0.9'

Usage with bower.json

You can use bower.json from bower-rails. This file should be in the same directory as the Gemfile.

# Gemfile
source 'https://rubygems.org'
require 'bundler/bower'

gem 'rails'

And bower.json

# bower.json
{
  "vendor": {
    "name": "bower-rails generated vendor assets",
    "dependencies": {
      "backbone"    : "0.9"
    }
  }
}

Install dependencies

Just execute bundle install.

Using rake (10.1.0)
Using bundler (1.3.5)
bower backbone#0.9              cached git://github.com/jashkenas/backbone.git#0.9.10
bower backbone#0.9            validate 0.9.10 against git://github.com/jashkenas/backbone.git#0.9
bower backbone#0.9             install backbone#0.9.10

backbone#0.9.10 bower_components/backbone
bower check-new     Checking for new versions of the project dependencies..
dsl-generated dependencies /home/lite/work/bundler-bower/spec/dummy/vendor/assets
├── backbone#0.9.10 (latest is 1.1.0)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

When you execute bundle or bundle install bundler-bower will execute bower install. But when you execute bundle update bundler-bower will execute bower update. When bundler quits you can find your assets in vendor/assets/bower_components. Of course you can change this directory by assets_path method.

Configure asset pipeline

# config/application.rb

# include Bower components in compiled assets
config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components')

Update your application.js file

// app/assets/javascripts/application.js
//
// Bower packages
//= require backbone/backbone
//
// Other components
//= require jquery
//= require jquery_ujs
// ...

ENJOY!

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Bitdeli Badge

bundler-bower's People

Contributors

bitdeli-chef avatar lte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bundler-bower's Issues

Cannot load such file -- bundler/bower

Environment:

  • Mac OS X 10.11.3 (El Capitan)
  • Homebrew 0.9.5
  • rvm 1.26.11 (same problem occurs with rbenv)
  • Bundler 1.11.2

Gemfile (excerpt):

source 'https://rubygems.org'
require 'bundler/bower'

asset "jquery", "~2.1.4"`

Observation:

bundle install

[!] There was an error parsing `Gemfile`: cannot load such file -- bundler/bower. Bundler cannot continue.

 #  from /Users/nobby/becompany/website/src/website-static/Gemfile:5
 #  -------------------------------------------
 #  
 >  require 'bundler/bower'
 #  
 #  -------------------------------------------

RubyGems Environment:

- RUBYGEMS VERSION: 2.5.1
- RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-darwin15]
- INSTALLATION DIRECTORY: /Users/nobby/.rvm/gems/ruby-2.3.0
- USER INSTALLATION DIRECTORY: /Users/nobby/.gem/ruby/2.3.0
- RUBY EXECUTABLE: /Users/nobby/.rvm/rubies/ruby-2.3.0/bin/ruby
- EXECUTABLE DIRECTORY: /Users/nobby/.rvm/gems/ruby-2.3.0/bin
- SPEC CACHE DIRECTORY: /Users/nobby/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/nobby/.rvm/rubies/ruby-2.3.0/etc
- RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-15
- GEM PATHS:
    - /Users/nobby/.rvm/gems/ruby-2.3.0
    - /Users/nobby/.rvm/gems/ruby-2.3.0@global
- GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
- REMOTE SOURCES:
    - https://rubygems.org/
- SHELL PATH:
    - /Users/nobby/.rvm/gems/ruby-2.3.0/bin
    - /Users/nobby/.rvm/gems/ruby-2.3.0@global/bin
    - /Users/nobby/.rvm/rubies/ruby-2.3.0/bin
    - /Users/nobby/.rvm/bin
    - /Users/nobby/src/apache/ant/apache-ant-1.9.6/bin
    - /usr/local/bin
    - /usr/bin
    - /bin
    - /usr/sbin
    - /sbin

Maybe bundler is looking in the wrong gem paths?
Any help is greatly appreciated – thanks a lot in advance!

Is there a way to execute without running gem install 'bundler-bower' before?

Basically I'm trying to reduce the amount of things users have to do to get up and running. Ideally it would only be bundle install.

Right now, in the Gemfile I'm running npm install as the last step and bower install as the post install npm step.

I'd like to install gem + require + install asset "all at once".

Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.