8

Within a gemfile, is there any way to tell Bundler something like:

gem 'twitter-bootstrap-rails', :exclude therubyracer

I need to install twitter-bootstrap-rails but it automatically pulls therubyracer in, so bundle install fails and bootstrap isn't included in the project since this is a Windows machine. I installed execjs to no avail.

I tried to list therubyracer under production, and bundle install --without production, also to no avail.

"therubyracer gem on windows" is also this problem, but none of the suggestions there change the error I'm getting.

My old thread was "When I do "bundle update", I get an error from a gem not in my gemfile. How do I ignore this dependency?".

Community
  • 1
  • 1
JakeP
  • 727
  • 1
  • 11
  • 21

1 Answers1

6

There is no option for this in Bundler.

So you're left with these options:

  • Don't use twitter-bootstrap-rails. You can just copy the compiled css and js files into the proper directories under vendor/assets. You'll lose the ability to change less variables. Or you can use the compass_twitter_bootstrap gem, which uses sass instead of less.

  • Get the maintainer of the less gem to use execjs instead of commonjs and therubyracer. It would probably mean significant refactoring for the maintainer(s) if at all possible.

  • Use the :platform option in your Gemfile, to only install on OSX or Linux. Then require the parts you can use by hand, without loading less. This probably won't work.

iain
  • 16,204
  • 4
  • 37
  • 41
  • 7
    That's pretty lame :-( Any chance that Bundler will have an exclude feature in near future? – Robert Reiz Feb 07 '15 at 22:28
  • 3
    Wow, this is terrrible. So if someone depends on something you 100% can verify does not get called, you're left with forking the gem to remove the line from the gemfile to avoid using that dependency. Wow. – gnkdl_gansklgna Apr 21 '17 at 19:01