我正在为我们的Web开发团队构建构建脚本。我们将使用此脚本准备所有前端代码以进行生产。我正在使用YUI Compressor压缩我们的CSS和JavaScript文件。一切都适用于CSS部分,但我遇到了JavaScriptCompressor类实例的问题。
我通过以下行导入YUI文件:
import com.yahoo.platform.yui.compressor.*;
这是我的JavaScriptCompressor实例:
FileReader ftcreader = new FileReader(ftc);
JavaScriptCompressor js = new JavaScriptCompressor(ftcreader);
供参考,以下是我如何使用CssCompressor类,它正常工作:
FileReader ftcreader = new FileReader(ftc);
CssCompressor css = new CssCompressor(ftcreader);
出于某种原因,我收到JavaScriptCompressor类的错误,说明:
The constructor JavaScriptCompressor(FileReader) is undefined
我是否错误地导入了YUI Compressor文件?或者是别的什么?任何帮助将不胜感激。
答案 0 :(得分:2)
你缺少ErrorReporter,构造函数的第二个参数:
JavaScriptCompressor compressor =
new JavaScriptCompressor(in, new SystemOutErrorReporter());
compressor.compress(out, 1 << 20, false, false, false, false);
然后是一个示例ErrorReporter:
class SystemOutErrorReporter implements ErrorReporter {
private String format(String arg0, String arg1, int arg2, String arg3, int arg4) {
return String.format("%s%s at line %d, column %d:\n%s",
arg0,
arg1 == null ? "" : ":" + arg1,
arg2,
arg4,
arg3);
}
@Override
public void warning(String arg0, String arg1, int arg2, String arg3, int arg4) {
System.out.println("WARNING: " + format(arg0, arg1, arg2, arg3, arg4));
}
@Override
public void error(String arg0, String arg1, int arg2, String arg3, int arg4) {
System.out.println("ERROR: " + format(arg0, arg1, arg2, arg3, arg4));
}
@Override
public EvaluatorException runtimeError(String arg0, String arg1, int arg2, String arg3, int arg4) {
System.out.println("RUNTIME ERROR: " + format(arg0, arg1, arg2, arg3, arg4));
return new EvaluatorException(arg0);
}
}