現在、プロジェクトの grunt-useminをセットアップしていますが、タスクで小さな問題が発生していcssmin
ます。
私たちのプロジェクトは、いくつかの外部ライブラリに依存しており、いくつかの外部ライブラリは長い追加アセット (画像やフォントなど) をもたらします。問題は、これらのライブラリのフォルダー構造が同じでないことです。
これは、さまざまなフォルダー構造の例です。
lib
|--lib1
| |--style1.css
| +--image1.png
+--lib2
|--styles
| +--style2.css
+--images
+--image2.png
index.html では、すべてのスタイルシートが参照され、ビルド ブロック内に配置されます。そのため、usemin タスクが実行されると、ライブラリのスタイルシートが 1 つの縮小されたファイルに連結され、出力フォルダー内に配置されます。対応するアセット (画像) もこの出力フォルダーにコピーされ、img
フォルダー内でフラット化されます。出力フォルダー構造は次のようになります
out
|--allstyles.min.css
|--image1.png
+--image2.png
ご想像のとおり、連結されたスタイルシートには (この例では) 2 つの異なる相対 URI があります。
image1.png
..\images\image2.png
これにより、一部の画像が見つからないという問題が発生しています。すべての相対 URI を out フォルダーにリベースするソリューションが必要です。タスクのオプションtarget
とroot
オプションを使用しようとしましたが、役に立ちませんでした。cssmin
誰かがこのタスクの正しい構成、または私が探しているものを達成できる別の Grunt タスクを教えてもらえますか?
前もって感謝します!