我有两个版本的Compass,0.12和0.13.alpha。默认版本是0.13.alpha,但有时我需要切换到0.12。
请允许哪个命令?
答案 0 :(得分:3)
老话题,但我刚遇到了有2个项目的问题。一个使用罗盘版本0.12
,另一个使用1.0
。
由于较新版本的指南针依赖于sass的新主要版本,因此在尝试在旧项目上运行较新的指南针时会遇到许多弃用警告和兼容性问题。
好吧,现在解决方案:
ruby gems已经支持安装了多个版本。在查看了compass
可执行文件之后,事实证明有一种方法可以指定要使用的罗盘版本(该文件由rubygems生成,如果您感到好奇,请参阅http://pastebin.com/HeZnE0T5)
我们现在可以同时安装多个版本的罗盘。例如:
gem install compass -pre // currently version 1.0.0.alpha.19
gem install compass // currently version 0.12.6
现在我们可以通过指定要使用的版本来使用它们:
$ compass version
Compass 1.0.0.alpha.19
Copyright (c) 2008-2014 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass
$ compass _0.12.6_ version
Compass 0.12.6 (Alnilam)
Copyright (c) 2008-2014 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass
这显然也适用于其他指南针命令,例如watch
:
$ compass _0.12.6_ watch .
>>> Compass is watching for changes. Press Ctrl-C to Stop.
编辑:当然版本切换可以在Gemfile中完成,但在我的情况下,它不是ruby项目,罗盘是通过命令行启动的
答案 1 :(得分:2)
如果要为不同的项目切换版本,我建议使用RVM(Ruby)或virtualenv和some help(Python)或类似的东西来管理宝石和版本。 Bundler将有助于使任何一种解决方案更易于维护。
如果您要在项目中切换版本,我建议您重新考虑您的方法。
答案 2 :(得分:2)
使用bundler非常简单。
安装bundler:
$ gem install bundler
如果您还没有Gemfile,请在项目中创建:
$ bundle init
在Gemfile中指定您想要/需要的版本:
gem 'compass', '~>0.12.2'
gem 'sass', '3.2.8'
安装您在Gemfile中定义的特定gem和依赖项:
$ bundle install
执行gem时,您现在可以使用bundler根据您的Gemfile控制要执行的版本:
$ bundle exec compass watch
就是这样!
在Gemfile中留下评论,告诉其他开发人员如何使用bundler:
# Now that you're using Bundler, you need to run `bundle exec compass watch` instead of simply `compass watch`.
了解有关版本控制的详情
答案 3 :(得分:1)
更改gemfile,添加版本参数。