【问题标题】:Closure compiler skip file关闭编译器跳过文件
【发布时间】:2011-01-12 06:21:29
【问题描述】:

我有一个 shell 脚本,它收集页面上的所有 .js 文件并将它们连接起来,以便使用闭包编译器进行编译。但是,我不希望通过编译器优化任何特定的 js 文件。例如,我有编译 fileA.js、fileB.js 和 fileC.js 的命令。如何标记跳过 fileB.js 但仍以正确的顺序将其放置在输出文件 scripts.min.js 中?因此,fileA.js 和 fileC.js 将使用 SIMPLE_OPTIMIZATION 进行优化,而不会触及 fileB.js。我可以在文件本身的 cmets 中放置一个关键字,即跳过此文件吗?

java -jar compiler.jar --js=fileA.js --js=fileB.js --js=fileC.js --js_output_file=scripts.min.js

【问题讨论】:

  • 你不应该这样做。闭包建议不要混合编译和未编译的代码。您到底想实现什么阻止您将所有 3 个文件编译在一起?
  • A 或 C 依赖于 B,还是 B 依赖于 A 或 C?如果不是 nullptr 的建议就是答案,尽管您可能至少仍会缩小 fileB 中的空白。

标签: javascript google-closure google-closure-compiler


【解决方案1】:

如果我在这里理解您的意图,您可以考虑分别处理要缩小的每个文件,然后将连接作为单独的步骤执行。在伪代码中:

minify fileA.js
minify fileC.js
cat fileA.js fileB.js fileC.js >scripts.min.js

【讨论】:

    【解决方案2】:

    没有关键字可以放在任何范围内说“忽略我”。 nullptr 有正确的建议。在我们的项目中,我们创建了一些简单的预处理 cmets 并使用它们来控制流程。但是,如果您想一次性完成,您只能在缩小代码之前或缩小代码之后忽略并包含一个文件。所以,nullptr 的解决方案是唯一的。请记住使用外部文件,以便变量重命名(而不是重命名)正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2014-02-17
      相关资源
      最近更新 更多