2011-07-06 8 views
1

私はCSSとJavaScriptファイルを縮小するためにYUI Compressorライブラリを使用しています。私は直接クラスCssCompressorとJavaScriptCompressorを使用します。YUI-Compressor:結果ファイルが空です

残念なことに、結果ファイルの一部が警告または例外なしで空です。

  • yuicompressor-2.4.2.jar
  • yuicompressor-2.4.6.jar
  • yuicompressor-2.4.7pre.jar

は、私はすでにバージョンでそれを試してみました

私の使用するコードは:

public static void compress(File file) { 

    try { 
     long start = System.currentTimeMillis(); 
     File targetFile = new File("results", file.getName() + ".min"); 
     Writer writer = new FileWriter(targetFile); 

     if (file.getName().endsWith(".css")) { 
      CssCompressor cssCompressor = new CssCompressor(new FileReader(file)); 
      cssCompressor.compress(writer, -1); 

     } else if (file.getName().endsWith(".js")) { 
      JavaScriptCompressor jsCompressor = new JavaScriptCompressor(new FileReader(file), new MyErrorReporter()); 
      jsCompressor.compress(writer, -1, true, false, false, true); 
     } 

     long end = System.currentTimeMillis(); 
     System.out.println("\t compressed " + file.getName() + " within " + (end - start) + " milliseconds"); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

ファイル(後で空である)は、例えば、次のようなものである。

私はメディアを使用してYUICompressor内のいくつかのバグがある知っているが、これは、空の結果との関係でだろうか?

+0

あなたはそれを修正することができ? –

+0

@ Fran_gg7まあ、それはずっと前です。覚えていないが、以下の私の答えによれば、私は別のWriter(FileWriterの代わりにStringWriter)を使用したので、私はそれを解決したと思う – monty

答えて

3

私は同じ問題がありました。 私の場合は、私のjavascriptコードがECMAの有効ではないという理由から(ECMA規則に従って許可されていない変数doubleを使用しています)

jsが有効かどうかを確認する勇気はありませんでしたが、jsファイルのさまざまな部分を圧縮しようとすると、問題が発生した場合に簡単に問題につながる可能性があります。

3

まあ、しばらくの間、私は解決策を見つけ出しました。

問題はYUIコンプレッサー自体ではなく、メソッドに与えられたFileWriterでした。

  • フラッシング私はさらなる処理のため縮小さの文字列を必要とするので、私は今決算でにStringWriterを使用
  • 空の結果ファイルの問題を解決する必要がありますしてFileWriterを閉じると洗い流す
関連する問題