4

Ant を使用して、@imports を使用して 1 つの外部 CSS ファイルで指定された CSS ファイルのリストを連結するにはどうすればよいですか?

css ファイルとファイルの順序を指定するCSS ファイルは次のようになります。

 @import url('header.css');
 @import url('footer.css');
 @import url('module/module1.css');
 @import url('module/module2.css');

css で指定されたすべてのファイルを Ant にロードして、単一のファイルに連結させたいと考えています。これは可能ですか?

4

1 に答える 1

3

これは、Antloadfileタスクの後にconcat.

例を次に示しlinecontainsregexpます。インポート ステートメントを含む css ファイルに、1 行に 1 つずつインポート ステートメントのみが含まれている場合は、オプションである可能性があります。(その css ファイルがより複雑な場合は、以下を改良する必要があります。)

<loadfile property="master.css" srcfile="master.css">
    <filterchain>
        <linecontainsregexp>
            <regexp pattern="@import url" />
        </linecontainsregexp>
        <replaceregex pattern=".*'(.*)'.*" replace="\1," />
        <striplinebreaks/>
    </filterchain>
</loadfile>

その結果は、css ファイルのコンマ区切りリストを必要な順序で含むプロパティです。次に、Antfilelistを使用して、連結でそれらを指定できます。

<concat destfile="all.css">
    <filelist files="${master.css}" />
</concat>
于 2013-01-06T11:05:28.747 に答える