javascript - C# 如何识别缩小版 JavaScript?

标签 javascript c# minify

我只是在 C# 应用程序中读取 JavaScript 文件,我需要知道 JavaScript 文件是否已缩小。 我能想到的唯一方法是计算以下比率,

缩小比例 = 换行数/文件大小

因此,在非缩小文件中,该值会更高,而在缩小文件中,该值会更小(可能小于 1)。

有没有更好的方法来做到这一点?

谢谢。

最佳答案

UglifyJS2 有类似 --beautify 的选项它保留新行,正确的方法是使用正则表达式 Paul S建议或JInt的解析器,JavascriptParser.cs .

使用正则表达式查找function\((?<var>([a-z][a-z0-9]*)(,|\)并检查所有 var 组的长度是否非常小。您可以检查根据变量长度声明的变量总数。

如果您想要更高级的版本,那么您可以使用 JInt 的 JavaScriptParser,它提供了抽象语法树,您可以在其中识别以下检查。

  1. 平均函数参数字符串长度是否小于 2,因为所有函数都定义为 function(a,b,c)...
  2. 您在 bool 比较表达式中遇到 !0 或 1 而不是“true”,以及 !1 或 0 而不是 false。
  3. 其他常见的缩小表达式,例如围绕大部分的 eval。

关于javascript - C# 如何识别缩小版 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29331621/

相关文章:

c# - 在 C# 中使用热键

c# - Serilog 在事件序列化时省略基类属性

c# - 尝试创建表时在 Xamarin.Android 中抛出 SQLite.SQLiteException

javascript - 压缩未压缩的 JS 文件

perl - 如何缩小 Perl 脚本?

Javascript 图形可视化库

javascript - 如何错开向滚动的 div 添加/删除多个类?

javascript - fabric.js fabric.Image.fromURL 在使用外部 url 时抛出错误

javascript - 如何更改 html(jade 模板)以在生产中使用 *.min js 和 css?

javascript - 哪些网站正在使用我的 GitHub 托管脚本?