Jekyll Asset Pipeline + YUI无法压缩JS文件

时间:2013-04-19 08:02:32

标签: ruby yui jekyll

我正在使用Jekyll和Jekyll Asset Pipeline构建网站,当我生成网站时,我收到以下错误:

Configuration from /home/liamzebedee/Documents/blog/_config.yml
Building site: /home/liamzebedee/Documents/blog -> /home/liamzebedee/Documents/blog/_site
Asset Pipeline: Processing 'css_asset_tag' manifest 'global'
Asset Pipeline: Saved 'global-209b6871f359105f20dc61685687e480.css' to '/home/liamzebedee/Documents/blog/_site/assets'
Asset Pipeline: Processing 'javascript_asset_tag' manifest 'global'
Asset Pipeline: Failed to compress 'global-31b4b6cd8ed5427ca98bb8f30ce0e75e.js' with 'JekyllAssetPipeline::JavaScriptCompressor'.
Liquid Exception: undefined method `exitstatus' for nil:NilClass in content
/var/lib/gems/1.9.1/gems/yui-compressor-0.9.6/lib/yui/compressor.rb:84:in `block in compress'
/var/lib/gems/1.9.1/gems/yui-compressor-0.9.6/lib/yui/compressor.rb:117:in `streamify'
/var/lib/gems/1.9.1/gems/yui-compressor-0.9.6/lib/yui/compressor.rb:66:in `compress'

我真的不确定导致这种情况的原因。这是我的compress.rb插件,以便使用YUI进行JS压缩:

require 'jekyll_asset_pipeline'

module JekyllAssetPipeline
  class JavaScriptCompressor < JekyllAssetPipeline::Compressor
    require 'yui/compressor'

    def self.filetype
      '.js'
    end

    def compress
      return YUI::JavaScriptCompressor.new(munge: true).compress(@content)
    end
  end
end

1 个答案:

答案 0 :(得分:2)

您的压缩方法在new()的参数中有拼写错误,下面有更正。

def compress
  return YUI::JavaScriptCompressor.new(:munge => true).compress(@content)
end

我怀疑这是jekyll-asset-pipeline文档中的错误。