问题标签 [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.
javascript - MooTools 框架的 Google Closure Compiler 外部文件
高级优化模式下的 Google Closure Compiler 使用文件来定义外部变量,以防止引用外部库中符号的变量、属性和函数名称被缩小,从而破坏代码。我的目标是编译使用 MooTools 框架(版本 1.2 和 1.3)的代码,但我无法找到一个“官方”外部文件,当我的代码被提供给闭包编译器时,它可以防止对 MooTools 函数的引用被混淆。我提出了以下相当基本的自定义 extern 文件,它成功处理了我的文件,但是否有更好的选择(例如从 MooTools 源自动生成它)?
javascript - 为什么 Closure Compiler 不缩短这个?
我不确定这只是一个错误还是一个预期的功能。
基本上,我有这个小功能(我现在看到end
这里是蓝色的,但这工作得很好,如果我将它重命名为其他东西我仍然有问题):
闭包编译时,我得到:
但是,为什么直接selectionStart
设置为Math.min
,whileselecitonEnd
设置为变量(c
),是先声明的?做起来不短tb.selectionEnd=Math.max(a,b)
吗?
任何想法表示赞赏。
javascript - 闭包编译器 - a++ >= 3 可以变成 ++a > 3 吗?
我承认我问了一个问题,为什么 Closure Compiler 不缩短某些乍一看似乎可以缩短的代码几天前,但这个原因在这种情况下不适用,我不确定为什么它没有缩短这里。
我的代码是:
现在有前置增量和后置增量。不同之处在于返回值 -a++
返回a
然后递增它,首先递增然后返回它。++a
a
这归结为我的代码可以缩短为(忽略空格删除):
然而,闭包编译器似乎并没有改变(或识别)这一点。
++a >
因此,我的问题是:使用而不是会产生什么副作用a++ >=
?
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 运行的:
php - 本地如何通过php使用谷歌闭包编译器?
如何使用闭包编译器库(本地)和php我可以混淆js?
我将感谢代码。也许有一些php类?
谢谢。
javascript - eval 和 google 闭包编译器的问题
我正在使用 google 闭包来压缩我的代码,但我对以下代码行有疑问:
我必须使用 eval 因为controller_to_load
我必须在元素上执行的方法 () 是可变的,并且取决于我得到的参数。
我的问题是我必须将一个对象传递给该方法,因此我将其作为变量名(options_for_controller
)的字符串表示形式,但闭包会更改该名称并且不会更改我的 eval 字符串中的变量名。
我的解决方案是:
- 将变量名动态作为字符串
- 将对象(带有回调函数)解析为字符串
- 禁用这些代码行的压缩
但是我该怎么做呢?还是有另一种解决方案?
谢谢
javascript - 在 JavaScript 中为 Google Closure Compiler 注释 Singleton 对象,或“危险使用全局 this 对象”警告
我正在使用 ADVANCED_OPTIMIZATIONS 编译级别的 Google Closure Compiler 并开始注释我的构造函数,因为我收到了各种警告:
警告 - 危险地使用全局 this 对象
对于我的“构造函数”类型函数,我将像这样注释它们:
这似乎工作正常,但是如果我有一个不是用 var myFoo = new Foo(); 构造的“单例”对象怎么办?我在文档中找不到如何注释这种类型的对象,因为它的类型只是对象,对吗?
javascript - javascript - 如何缩小/混淆全局函数名称?
我有一些具有以下格式的代码:
是的,这些函数是全局的,但没关系,因为我是在 google chrome 扩展内容脚本中编写的,所以它是沙盒的。
现在,我正在尝试缩小和混淆代码。我试过 YUI Compressor 和 Google Closure 编译器。问题是,我不知道如何缩小/混淆全局函数名称。使用 YUI,它不会缩小全局变量以防它们被外部调用。在高级模式下使用 Closure,它似乎可以重命名全局变量,但是我在删除死代码时遇到了问题。大多数函数似乎已经死了,因为它们依赖于 DOM 交互和事件处理并且没有被直接调用。
那么关于如何缩小这些全局变量的任何想法?我是否需要编写一个脚本来进行一些正则表达式替换?如果我的代码更适合缩小模式,我也愿意重构我的代码(例如,添加到闭包或诸如此类)
msbuild - 在构建服务器上将 Google Closure Compiler 与 MS Build 集成
我正在研究将 javascript 文件缩小为 CI 流程一部分的方法,以便我们可以在开发中使用未缩小的文件,并在部署到登台和实时服务器时自动压缩它们。
这是针对 ASP.NET 站点的;我们使用 Hudson 作为构建服务器。
我对 Google Closure 编译器很感兴趣,并且遇到过这个.Net MSBuild Google Closure Compiler Task,但它似乎并没有被广泛使用。是否有更好的选择与 MSBuild 一起使用,使用 Closure 或替代缩小工具?