【问题标题】:'grunt compass' throwing error that it's not in the system PATH'grunt compass' 抛出它不在系统路径中的错误
【发布时间】:2014-06-16 19:14:14
【问题描述】:

我对使用 grunt、compass 和 sass 还很陌生,但在使用它时遇到了麻烦。我使用 Drupal 7 安装了 Redhat,当我尝试从站点的主题目录中运行“grunt compass”时,出现以下错误:

Running "compass:dist" (compass) task
Warning: You need to have Ruby and Compass installed and in your system PATH for this task     to work. More info: https://github.com/gruntjs/grunt-contrib-compass Use --force to continue.

Aborted due to warnings.

我已经安装了 Grunt、Bower,并使用“捆绑安装”来安装所需的 gem。当我运行“宝石列表”时,我得到以下信息:

bigdecimal (1.2.4)
breakpoint (2.0.7)
bundler (1.6.2)
bundler-unload (1.0.2)
chunky_png (1.3.1)
compass (0.12.6)
compass-normalize (1.4.3)
executable-hooks (1.3.1)
fssm (0.2.10)
gem-wrappers (1.2.4)
io-console (0.4.2)
json (1.8.1)
kss (0.5.0)
minitest (4.7.5)
psych (2.0.3)
rake (10.1.0)
rdoc (4.1.0)
ruby (0.1.0)
rubygems-bundler (1.4.3)
rubygems-update (2.2.2)
rvm (1.11.3.9)
sass (3.2.19)
test-unit (2.1.1.0)
zurb-foundation (4.3.2)

看来我拥有所有需要的宝石。然后我通过“echo $PATH”查看了我的 PATH 设置并得到以下信息:

/home/ec2-user/.rvm/gems/ruby-2.1.1/bin:/home/ec2-user/.rvm/gems/ruby-2.1.1@global/bin:/home/ec2-user/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/home/ec2-user/.rvm/bin

我查看了路径,发现在 /usr/bin 中有 ruby​​2.0,在 /home/ec2-user/bin 中有 compass,所以安装似乎在系统 PATH 中。

当我从命令行运行“ruby2.0”时,我得到以下信息:

/usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:12:in `<class:Builder>':  uninitialized constant Gem::UserInteraction (NameError)
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:10:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext.rb:13:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1431:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in    find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/user_interaction.rb:8:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/config_file.rb:7:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1430:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from <internal:abrt_prelude>:2:in `<compiled>'

当我简单地运行“ruby”时,什么都没有发生。 'grunt compass' 是否正在寻找 'ruby' 而我有 'ruby2.0'?我需要用 ruby​​ -> ruby​​2.0 创建符号链接吗?

当我从命令行运行“指南针”时,我得到:

用法:指南针帮助[命令]

Description:
  The Compass Stylesheet Authoring Framework helps you
  build and maintain your stylesheets and makes it easy
  for you to use stylesheet libraries provided by others.

等等

任何想法将不胜感激

【问题讨论】:

  • 确认一下,当您在 Grunt 之外使用 Compass 时,它可以正常工作吗?你能看/编译/等吗?
  • 我能够运行“指南针手表”并且样式表被覆盖。但是,我确实得到了以下信息: Errno::EACCES on line ["146"] of /home/ec2-user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/tempfile.rb:权限被拒绝@ rb_sysopen - /var/www/html/drupal/sites/all/themes/theme_name/assets/css/site_styles.css20140430-4672-pmg71i

标签: sass gruntjs


【解决方案1】:

grunt compass 寻找红宝石。在您的情况下,'compass -v' 没有给出错误,因此指南针部分工作正常。除此之外,它不依赖于 ruby​​ 的任何其他组件。

既然指南针已经准备好了,grunt compass 还会查找一个 npm 模块 grunt-contrib-compass,您可以在 package.json 文件中找到它的引用。如果你执行npm install,这个 npm 包就会被安装,我相信它应该能让grunt compass 工作。

【讨论】:

    【解决方案2】:

    grunt-contrib-compass 有一个具有魔力的 bundleExec 选项。使用 bundle 它将加载使用 bundle install 安装的 gem。只需设置 bundleExec: true

    https://github.com/gruntjs/grunt-contrib-compass#bundleexec

    【讨论】:

      【解决方案3】:

      我已经对此进行了一些研究,以下内容对我有用...

      如果您通过 CLI 安装了 Ruby 和 Compass 的 Windows 版本,请尝试;

      • 控制面板 > 系统 > 高级系统设置
      • 高级 > 环境变量
      • 在系统变量下搜索应该有值的“路径”变量
      • 最后点击编辑并在变量值的最后添加;C:\Ruby193\bin

      这应该可以解决问题。

      注意;C:\Ruby193\bin指的是在你的机器上安装了Ruby > Compass。

      如果您有 Mac 版本,那么类似的修复版本可能适用于 Mac,但我无法为您映射,谷歌搜索可能会有所帮助...

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 2015-06-09
        • 1970-01-01
        • 1970-01-01
        • 2013-06-06
        • 2022-11-12
        • 1970-01-01
        • 1970-01-01
        • 2014-10-31
        相关资源
        最近更新 更多