Telling Bundler to exclude certain gems from a particular gem's installation

China☆狼群 提交于 2020-01-21 03:32:06

问题


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 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.



来源:https://stackoverflow.com/questions/9421410/telling-bundler-to-exclude-certain-gems-from-a-particular-gems-installation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!