3

我多年来一直使用 YUI Compressor 来缩小和混淆 JS 文件。但现在我需要对服务器上动态生成的 JavaScript 代码进行混淆和缩小。所以这里的主要区别是不会有应该被混淆的 JS 文件,而是对服务器 (Java) 的请求,它应该生成部分 JS 代码并返回它们已经缩小和混淆。

YUI Compressor 不提供这样做的可能性。我查看了源代码,并且已经弄清楚应该重写哪些方法以使其工作。我不想这样做(但如果没有其他方法就必须这样做)。

那么是否有任何其他 Java 库允许直接从 Java 代码中缩小和混淆 JavaScript 字符串?

4

1 回答 1

1

计划一)

不将 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。

于 2017-06-28T23:47:38.723 回答