【问题标题】:Grunt/Bundler wont use specified sass versionGrunt/Bundler 不会使用指定的 sass 版本
【发布时间】:2014-06-16 18:48:59
【问题描述】:

我们有一个带有 Grunt 和 Bundler 设置的项目。所有这些都安装没有问题。生成 Gemfile.lock,拉下适当的 gem,并使用 npm 创建 grunt 文件。我们开始监视该项目,它在 sass 编译时爆炸,因为它使用了错误的 sass 版本,而不是 gemfile 中指定的版本。

顺便说一句,这是在windows上...

宝石文件

source 'https://rubygems.org'

gem 'sass', '~> 3.2'
gem 'compass', '~> 0.12'
gem 'susy', '~> 1.0'

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    chunky_png (1.3.1)
    compass (0.12.6)
      chunky_png (~> 1.2)
      fssm (>= 0.2.7)
      sass (~> 3.2.19)
    fssm (0.2.10)
    sass (3.2.19)
    susy (1.0.9)
      compass (>= 0.12.2)
      sass (>= 3.2.0)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  compass (~> 0.12)
  sass (~> 3.2)
  susy (~> 1.0)

【问题讨论】:

  • 你需要安装几个版本的sass吗?我发现处理这个问题的方法是删除所有 sass 版本,除了我想使用的版本。
  • nwalton,bundler 的全部意义在于能够安装多个版本的 gem,并能够指定用于特定项目的 gem。这样,您或您的团队在项目之间切换时并不总是安装/删除 gem。不过感谢您的建议。

标签: ruby responsive-design sass bundler compass-sass


【解决方案1】:

如果您想将 gem 限制为仅包含在您的包中的那些(列在 Gemfile 中),则在终端中运行命令时,您应该在命令前加上 bundle exec

例如。如果您正在运行 sass --watch,那么您将运行 bundle exec sass --watch 以确保您使用捆绑包中的版本。

bundle exec 上的文档:http://bundler.io/man/bundle-exec.1.html

【讨论】:

  • 我们在目录上使用 grunt watch,因为我们还有一些其他的进程要使用 sass 执行。知道如何让它在这方面发挥作用吗?
  • hmm,因为 grunt 不是你的包中的宝石,你不能只做 bundle exec grunt... 你能告诉 grunt(我对 grunt 不是很熟悉,但我相信它有某种包含命令的 Gruntfile?)以某种方式使用bundle exec sass
  • Grunt 还没有运气,但是做一个“bundle exec compass watch”对 sass 部分有用。
  • 诀窍是在 bundle 命令前面使用“bundle exec grunt watch”来强制使用指定的版本。谢谢,希望这对未来的其他人有所帮助。
【解决方案2】:

基于一个非正式实验(在我的 Gruntfile 的同一级别将 GEMFILE 添加到我的项目中),如果您使用 Compass 任务并将任务选项“bundleExec”设置为 true,则该任务应依赖 bundler处理版本和依赖关系。使用此设置,仅在运行“grunt server”(而不是“bundle exec grunt server”)时创建了一个锁定文件。如果这是错误或误导性的建议,请任何人纠正我。这两种方法似乎都适用于我的环境。

【讨论】:

    【解决方案3】:

    在 unix 上,您可以使用以下命令进行检查:

    which sass

    应该返回如下内容:

    /Users/[username]/.rbenv/shims/sass

    如果它类似于/usr/bin/sass,那么您需要在命令前加上@sevenseacat 提到的bundle exec

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2014-12-31
      • 2015-04-30
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多