[Scala][Lift] JavaScriptの圧縮でエラーが出る

 Liftプロジェクトをビルドする時、webappディレクトリ以下においてあるJavaScriptファイルやcssファイルはYui Compresseorを用いて圧縮されます。これが結構厄介で、圧縮済みJavaScriptファイルなんかが入っていると(jQueryとか)圧縮エラーになってビルドが終わりません。勝手に圧縮する必要なんて無いんだけど。

圧縮対象ファイルから取り除く

 ビルド通らないと実行も何もできないので、圧縮対象から取り除きます。Yui CompressorのPOMファイルに「excludes」という項目を追加します。

<plugin>
    <groupId>net.sf.alchim</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>0.7.1</version>
    <executions>
        <execution>
            <goals>
                <goal>compress</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <nosuffix>true</nosuffix>
        <!-- ここから -->
        <excludes>
            <exclude>**/jquery-1.7.2.min.js</exclude>
        </excludes>
        <!-- ここまで -->
    </configuration>
</plugin>

 「excludes」という要素に「exclude」要素を追加し、その中に除外したいJavaScriptファイルやcssファイル名を記述すると、圧縮対象から除外されます。

なぜか圧縮が通らない

 本題とは別ですが、普通に書いたプログラムの圧縮が通らないことがあります。その時は、改行コードをチェックしてみてください。手元のYui Compressor(バージョンは0.7.1)では、改行コードは「CR/LF」でなければならないようです(開発環境がMacなので改行コードは「LF」でした)。うまくいかない方は確認してみるといいかもしれません。

0 件のコメント :

コメントを投稿