问题标签 [google-closure-compiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1460 浏览

javascript - MooTools 框架的 Google Closure Compiler 外部文件

高级优化模式下的 Google Closure Compiler 使用文件来定义外部变量,以防止引用外部库中符号的变量、属性和函数名称被缩小,从而破坏代码。我的目标是编译使用 MooTools 框架(版本 1.2 和 1.3)的代码,但我无法找到一个“官方”外部文件,当我的代码被提供给闭包编译器时,它可以防止对 MooTools 函数的引用被混淆。我提出了以下相当基本的自定义 extern 文件,它成功处理了我的文件,但是否有更好的选择(例如从 MooTools 源自动生成它)?

0 投票
2 回答
372 浏览

javascript - 为什么 Closure Compiler 不缩短这个?

我不确定这只是一个错误还是一个预期的功能。

基本上,我有这个小功能(我现在看到end这里是蓝色的,但这工作得很好,如果我将它重命名为其他东西我仍然有问题):

闭包编译时,我得到:

但是,为什么直接selectionStart设置为Math.min,whileselecitonEnd设置为变量(c),是先声明的?做起来不短tb.selectionEnd=Math.max(a,b)吗?

任何想法表示赞赏。

0 投票
3 回答
224 浏览

javascript - 闭包编译器 - a++ >= 3 可以变成 ++a > 3 吗?

我承认我问了一个问题,为什么 Closure Compiler 不缩短某些乍一看似乎可以缩短的代码几天前,但这个原因在这种情况下不适用,我不确定为什么它没有缩短这里。

我的代码是:

现在有前置增量和后置增量。不同之处在于返回值 -a++返回a然后递增它,首先递增然后返回它。++aa

这归结为我的代码可以缩短为(忽略空格删除):

然而,闭包编译器似乎并没有改变(或识别)这一点。

++a >因此,我的问题是:使用而不是会产生什么副作用a++ >=

0 投票
1 回答
247 浏览

javascript - 如何让 Google 的 Closure Compiler 消除属性

0 投票
2 回答
1501 浏览

google-closure-compiler - 为什么在“Hello World”plovr 示例中出现 JSC_MISSING_PROVIDE_ERROR?

我正在尝试使用 Closure中的简单“Hello World”示例开始使用plovr :Michael Bolin 的权威指南。但是我的构建会产生错误。有人可以告诉我我的错误吗?

这是我的文件布局:

这是hello.js的内容:

这是hello-config.js的内容:

这是我的构建结果(如果有问题,我会加入 Java 版本):

我一定错过了一些微不足道的东西,但我没有看到它。

万一这很重要,这是使用 Java 1.6.0_24 运行的:

0 投票
2 回答
1191 浏览

php - 本地如何通过php使用谷歌闭包编译器?

如何使用闭包编译器库(本地)和php我可以混淆js?

我将感谢代码。也许有一些php类?

谢谢。

0 投票
2 回答
873 浏览

javascript - eval 和 google 闭包编译器的问题

我正在使用 google 闭包来压缩我的代码,但我对以下代码行有疑问:

我必须使用 eval 因为controller_to_load我必须在元素上执行的方法 () 是可变的,并且取决于我得到的参数。

我的问题是我必须将一个对象传递给该方法,因此我将其作为变量名(options_for_controller)的字符串表示形式,但闭包会更改该名称并且不会更改我的 eval 字符串中的变量名。

我的解决方案是:

  • 将变量名动态作为字符串
  • 将对象(带有回调函数)解析为字符串
  • 禁用这些代码行的压缩

但是我该怎么做呢?还是有另一种解决方案?

谢谢

0 投票
2 回答
2420 浏览

javascript - 在 JavaScript 中为 Google Closure Compiler 注释 Singleton 对象,或“危险使用全局 this 对象”警告

我正在使用 ADVANCED_OPTIMIZATIONS 编译级别的 Google Closure Compiler 并开始注释我的构造函数,因为我收到了各种警告:

警告 - 危险地使用全局 this 对象

对于我的“构造函数”类型函数,我将像这样注释它们:

这似乎工作正常,但是如果我有一个不是用 var myFoo = new Foo(); 构造​​的“单例”对象怎么办?我在文档中找不到如何注释这种类型的对象,因为它的类型只是对象,对吗?

0 投票
4 回答
5927 浏览

javascript - javascript - 如何缩小/混淆全局函数名称?

我有一些具有以下格式的代码:

是的,这些函数是全局的,但没关系,因为我是在 google chrome 扩展内容脚本中编写的,所以它是沙盒的。

现在,我正在尝试缩小和混淆代码。我试过 YUI Compressor 和 Google Closure 编译器。问题是,我不知道如何缩小/混淆全局函数名称。使用 YUI,它不会缩小全局变量以防它们被外部调用。在高级模式下使用 Closure,它似乎可以重命名全局变量,但是我在删除死代码时遇到了问题。大多数函数似乎已经死了,因为它们依赖于 DOM 交互和事件处理并且没有被直接调用。

那么关于如何缩小这些全局变量的任何想法?我是否需要编写一个脚本来进行一些正则表达式替换?如果我的代码更适合缩小模式,我也愿意重构我的代码(例如,添加到闭包或诸如此类)

0 投票
4 回答
2065 浏览

msbuild - 在构建服务器上将 Google Closure Compiler 与 MS Build 集成

我正在研究将 javascript 文件缩小为 CI 流程一部分的方法,以便我们可以在开发中使用未缩小的文件,并在部署到登台和实时服务器时自动压缩它们。

这是针对 ASP.NET 站点的;我们使用 Hudson 作为构建服务器。

我对 Google Closure 编译器很感兴趣,并且遇到过这个.Net MSBuild Google Closure Compiler Task,但它似乎并没有被广泛使用。是否有更好的选择与 MSBuild 一起使用,使用 Closure 或替代缩小工具?