我使用YUI Compressor多年来缩小和混淆JS文件。但现在我需要在服务器上混淆和缩小动态生成的JavaScript代码。所以这里的主要区别在于不存在应该被混淆的JS文件,而是对服务器(Java)的请求应该生成部分JS代码并返回它们已经缩小和混淆。
YUI Compressor没有提供这样做的可能性。我在消息来源中观察并且已经找出应该覆盖哪些方法以使其工作。我不想这样做(但如果没有别的办法则必须这样做。)
那么是否还有其他Java库允许直接从Java代码中缩小和混淆JavaScript字符串?
答案 0 :(得分:0)
计划a)
不要将YUI用作命令行工具,而应用作Java库并在代码中调用它。
JavaScriptCompressor接受Reader后代(例如InputFileReader)。
JavaScriptCompressor compressor = new JavaScriptCompressor(in, new YuiCompressorErrorReporter());
您实际上可以获取原始JavaScript并将其转换为Stream,例如How do I convert a String to an InputStream in Java?
此处有一个完整的集成示例:
http://blog.teamextension.com/yui-compressor-in-java-246
计划b)
请注意,您只需将生成的javascript保存到文件系统中,然后从Java调用命令行Yui。然后从文件系统中读取缩小的文件,就是这样,你有一个缩小的JS。