【问题标题】:How to prevent keywords from getting obfuscated when using Google Closure Compiler?使用 Google Closure Compiler 时如何防止关键字被混淆?
【发布时间】:2015-07-24 14:00:02
【问题描述】:

我正在尝试使用 Google Closure 编译器混淆 javascript 文件(大约 50 个)。这些文件都相互依赖。

在简单模式下,它只混淆局部变量。

在高级模式下,它会混淆所有变量和函数,包括我不想混淆的某些关键字(args、readline、atEnd)。

如何混淆某些变量而不混淆其他变量?具体来说:我不希望关键字被混淆。

【问题讨论】:

  • 没有are keywords?
  • 为什么不希望这些混淆?您是否在一个脚本中声明全局变量并在另一个脚本中使用它们?
  • 这些是 nodejs 关键字。我可以知道如何外部 nodejs 吗??

标签: javascript obfuscation google-closure-compiler


【解决方案1】:

ADVANCEDSIMPLE 模式之间存在相当大的差异。高级优化仅适用于旨在不违反任何compiler restrictions 的代码库。在继续之前,您可以阅读Which Compilation Level is Right for Me?

你的问题的答案是外部和出口:

  • Externs 阻止编译器重命名外部库中的符号
  • 导出会保留代码中的符号以供其他地方使用

【讨论】:

    【解决方案2】:

    我没有使用 Google Closure Compiler 的经验,但为了混淆我的项目,我使用了 Jscrambler。 它使您可以防止关键字被他们称为"Rename Exclude List" 的黑名单混淆。我有时会在我有微妙的函数名称时使用此功能,否则如果它们被混淆会破坏我的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 2017-09-11
      • 2010-12-14
      • 2014-10-15
      相关资源
      最近更新 更多