В настоящее время я использую гум guard, то есть гуд-coffeescript, для компиляции моего javascript (и в будущем я, вероятно, добавлю еще несколько задач по защите) в моей системе разработки OSX . Я добавил гем rb-fsevent
в свой Gemspec, теперь я увидел, что во многих Gemspec он добавлен с помощью оператора if, подобного этому:
gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
Попытка развернуть в моей промежуточной / производственной среде, которая работает под Linux, сценарий, выполняемый на сервере, использует пакет bundle install --deployment
приводит к следующему исключению:
# bundle install --deployment
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control
You have deleted from the Gemfile:
* rb-fsevent
Есть ли способ обойти эту проблему, или мне просто нужно удалить if, чтобы Я могу выполнить развертывание в своей системе и, в свою очередь, установить гем, который бесполезен на платформе, отличной от OSX?
-
изменить: я запускаю bundle install
перед развертыванием в моей промежуточной среде и запускаю проверка пакета
после первого сбоя. Я запустил его после удаления оператора if ..
Как описано в
https://github.com/guard/guard
, решение просто
group :development do
gem 'rb-inotify', :require => false
gem 'rb-fsevent', :require => false
gem 'rb-fchange', :require => false
end