压缩未消化的 SASS 资产 rails

Compress non digested SASS assets rails

我有一些资产需要保留在资产管道之外,但仍需要压缩,特别是一些 SASS 文件。我已经为我的非消化 JS 实现了这一点,它看起来像这样:

Dir["#{Rails.root}/app/assets/javascripts/non_digest/*"].each do |asset|
   asset_name = File.basename(asset)
   asset_output = "#{Rails.root}/public/external/#{asset_name}"
   asset_uglified = Uglifier.compile(File.read(asset))
   File.open(asset_output, 'w') {|a| a.write(asset_uglified) }
end

这包含在我的初始化程序中。

是否可以使用 Sprockets 对我的非摘要 SASS 文件执行相同的操作?我已经快速浏览了 Sprockets::SassCompressor,但到目前为止还无法正常工作。

如果您安装了 sass gem,您可以执行以下操作:

Dir["#{Rails.root}/app/assets/stylesheets/non_digest/*"].each do |asset|
  asset_name = File.basename(asset)
  asset_output = "#{Rails.root}/public/external/#{asset_name.gsub('.scss', '.css')}"
  asset_minified = Sass::Engine.new(File.read(asset), syntax: :scss, style: :compressed).render
  File.open(asset_output, 'w') {|a| a.write(asset_minified) }
end

您是否尝试过使用链轮-sass gem?它适用于 SASS 和 SCSS 。目前仅支持链轮 2.x 和 3.x 。它还提供了一个压缩器。