问题
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?".
回答1:
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 undervendor/assets
. You'll lose the ability to change less variables. Or you can use thecompass_twitter_bootstrap
gem, which uses sass instead of less.Get the maintainer of the
less
gem to useexecjs
instead ofcommonjs
andtherubyracer
. 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 loadingless
. This probably won't work.
来源:https://stackoverflow.com/questions/9421410/telling-bundler-to-exclude-certain-gems-from-a-particular-gems-installation