我多年来一直使用 YUI Compressor 来缩小和混淆 JS 文件。但现在我需要在服务器上混淆和缩小动态生成的 JavaScript 代码。因此,这里的主要区别在于,不会有应该混淆的 JS 文件,而是向服务器(Java)发出请求,该服务器应该生成部分 JS 代码并返回已经缩小和混淆的文件。
YUI Compressor 不提供这样做的可能性。我查看了源代码,并且已经弄清楚应该重写哪些方法才能使其正常工作。我不想这样做(但如果没有其他办法,就必须这样做)。
那么还有其他 Java 库允许直接从 Java 代码中缩小和混淆 JavaScript 字符串吗?
Plan a)
不要将 YUI 作为命令行工具使用,而是将其作为 Java 库并在代码中调用它。
JavaScriptCompressor 接受 Reader 后代(例如 InputFileReader)。
JavaScriptCompressor compressor = new JavaScriptCompressor(in, new YuiCompressorErrorReporter());
实际上,您可以获取原始 JavaScript 并将其转换为 Stream,例如在 Java 中如何将字符串转换为输入流? https://stackoverflow.com/questions/782178/how-do-i-convert-a-string-to-an-inputstream-in-java
完整的集成示例如下:
http://blog.teamextension.com/yui-compressor-in-java-246 http://blog.teamextension.com/yui-compressor-in-java-246
Plan b)
请注意,您可以简单地将生成的 javascript 保存到文件系统中,然后从 Java 调用命令行 Yui。然后从文件系统中读取缩小的文件,就这样,你就有了一个缩小的 JS。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)