0

ファイルを処理するためにsass( haml-edgeから) を使用しcssていますが、パラメーターとして絶対パスでクラッシュします。

K:\sass>sass.bat k:/sass/css/*.scss k:/sass/css/*.css --trace
d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/files.rb:23:in `read': No such file or directory - k
 (Errno::ENOENT)
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/files.rb:23:in `tree_for'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:220:in `update_stylesheet'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `block in update_stylesheets'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `each'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `update_stylesheets'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:433:in `watch_or_update'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:349:in `process_result'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:41:in `parse'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:21:in `parse!'
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/bin/sass:8:in `<top (required)>'
    from d:/Programs/Ruby/bin/sass:19:in `load'
    from d:/Programs/Ruby/bin/sass:19:in `<main>'

split_colon_path(Ruby\lib\ruby\gems\1.9.1\gems\haml-edge-3.1.62\lib\haml\exec.rb) の1 つの条件にコメントすることで、機能させることができました。

def split_colon_path(path)
  one, two = path.split(':', 2)
  if one && two && #### this part was commented #  ::Haml::Util.windows? &&
      one =~ /\A[A-Za-z]\Z/ && two =~ /\A[\/\\]/
    # If we're on Windows and we were passed a drive letter path,
    # don't split on that colon.
    one2, two = two.split(':', 2)
    one = one + ':' + one2
  end
  return one, two
end

プラットフォーム検出のためのより良いソリューションはありますか?

4

2 に答える 2

1

で問題が解決しましたhaml-edge 3.1.64

記録のために、が可能な値にmingw追加されました:host_os{Ruby folder}\lib\ruby\gems\1.9.1\gems\haml-edge-3.1.64\lib\haml\util.rb

# Whether or not this is running on Windows.
#
# @return [Boolean]
def windows?
  RbConfig::CONFIG['host_os'] =~ /mswin|windows|mingw/i
end
于 2010-08-16T05:31:35.267 に答える
1

これは既知のバグです。Sass の最新の安定バージョンで修正されています。ただし、mingw Ruby を使用している場合は、次の安定バージョン (今週末にリリース予定) で修正される予定です。

于 2010-08-13T23:40:10.327 に答える