【问题标题】:Gemfile when developing between two platforms在两个平台之间开发时的 Gemfile
【发布时间】:2013-01-07 09:19:42
【问题描述】:

我正在 Windows 机器和 linux 机器之间开发 Ruby on Rails 应用程序。不理想,但 Windows 上的 Ruby 改进了很多。无论如何,我读到你可以实现一个 IF 语句,例如我已经实现了这个

 source 'https://rubygems.org'

 if RUBY_PLATFORM =~ /win32/

 gem 'rails', '3.2.3'
 gem 'sqlite3'

 group :assets do
 gem 'sass-rails',   '~> 3.2.3'
 gem 'coffee-rails', '~> 3.2.1'
 gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'
 gem 'uglifier', '>= 1.0.3'
 end

 gem 'jquery-rails'
 gem 'nokogiri'
 gem 'httparty'
 gem 'devise'

 else

gem 'rails', '3.2.3'
gem 'sqlite3', '1.3.6'

group :assets do
gem 'sass-rails',   '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'
gem 'less-rails'
gem 'uglifier', '>= 1.0.3'
gem 'execjs'
gem 'therubyracer', '0.10.2'
end

gem 'jquery-rails'
gem 'nokogiri'
gem 'httparty'
gem 'devise'

end

所以今天早上我将我的 linux 分支合并到 master 分支(windows)中,现在我收到了消息

Could not find the less-rails in any of the sources

因此,当我在我的 linux 分支中使用它时,似乎 IF 语句不起作用或者资产中的 bootstrap.css.less 文件存在问题

我怎样才能让它工作,所以要么在两个平台上少工作,要么让 windows 忽略 less gem

以前有人解决过这个问题

更新

好的,我发现如果我指定了

:platform => :ruby 

由于 js 运行时冲突,在 less-rails gem 之后它会忽略它(尽管我也必须添加到 execjs 和 ruby​​racer)。所以关于我的 IF/ELSE 语句有什么问题的问题仍然存在

谢谢

【问题讨论】:

    标签: ruby ruby-on-rails-3 windows-7 if-statement gemfile


    【解决方案1】:

    你重建了捆绑锁文件吗?

    在你的 Windows 机器上试试这个:

    bundle install
    bundle update
    

    要了解 bundle、Gemfile、Gemfile.lock 以及切换平台时为什么需要重建锁:http://gembundler.com/rationale.html

    【讨论】:

    • 谢谢你的回答,你介意解释一下这会做什么,我对锁文件的理解也不是 100%,任何很好的资源可以很好地解释它或者你有一个简单的解释,谢谢再次
    • Yehuda Katz 有一篇与此相关的好帖子:yehudakatz.com/2011/05/30/…
    猜你喜欢
    • 2012-05-05
    • 2015-01-04
    • 2021-03-14
    • 1970-01-01
    • 2010-11-29
    • 2013-06-09
    • 2018-08-30
    • 2013-12-27
    相关资源
    最近更新 更多