Middlemanでコンパス生成されたスプライトを使用して、ビルドからSpriteソースファイルを除外する方法は?

StackOverflow https://stackoverflow.com/questions/9339024

  •  27-10-2019
  •  | 
  •  

質問

Middleman 2.0.14を使用して、コンパス機能を使用して、次のようなCSSファイルにいくつかのスプライトを生成します。

@import "companies/*.png";
@include all-companies-sprites;

これにより、すべてのファイルが取得されます source/images/companies/*.png 単一のスプライトファイルを生成します source/images/companies-s45e421528f.png. 。ここまでは順調ですね。

私がするとき middleman build, 、生成された画像ファイルを忠実にコピーしますが、 companies/*.png ファイル。

展開スクリプトにこれらの追加ファイルを削除するのは大したことではありませんが、どこかに欠けているオプションがあるのだろうか? (または、「mm 3.xをリリースする準備ができている」には解決策がありますか?) companies/*.png ソースツリーのどこか他のファイル?

役に立ちましたか?

解決

スクリプト(または after_build 針)。これは、開発モードで画像を生成するためのコンパスのデフォルトの動作であり、変更するためにモンキーのパッチが必要です(今のところ、コンパスベータはこれらのオプションに直接アクセスできます)。

3.0では、次のことを試すことができます。

configure :build do
  ignore "source/images/companies/*.png"
end

しかし、コンパスがそれを窒息させないかどうかはわかりません。

他のヒント

使用 ignore 私のためにビルドを大幅に減速させたので、私はスプライト資産を外に置くことを好みました source/.

このようにして、スプライトは下に生成されます source/sprites/, build/sprites ソースはなく除外されます ignoreそれをする。

これをセットアップする方法は次のとおりです。

# config.rb

compass_config do |config|
    # tell Compass to load sprites from `project_root/sprites`
    config.sprite_load_path = 
      config.sprite_load_path
      .to_a
      .push(File.join root, 'sprites')
end 
# style.css.scss

@import "..sprites/companies/*.png";
@include all-companies-sprites;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top