问题标签 [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 投票
1 回答
171 浏览

vb.net - Google Closure Compiler returns no compiled code?

In another question here at Stack Overflow, I came across a very helpful code snippet to send code to the Google Closure Compiler, which can minify JavaScript files pretty good.

The problem I'm facing however is that it returns no compiled code in cases I don't expect it to do so.

Code:

This works, i.e. returns minified code:

This one, on the other hand, does not return anything. The statistics are sent, but no compiled data...:

Rest of the code which actually does the work:

What could be the casue at all? I'm curious to know.

0 投票
2 回答
925 浏览

javascript - Notepad++ 是否有 Google Closure Compiler 插件

我在“互联网”上环顾四周,但找不到正确的答案:

是否有适用于Notepad++的Google Closure Compiler插件或使其与NppExec.Execute(F6 键)一起使用的方法。

0 投票
2 回答
3152 浏览

javascript - 闭包编译器导出所有原型和静态方法

闭包编译器是否有一种简单的方法能够导出一个类及其所有原型和静态方法并将名称保留为公共 API?默认情况下,高级选项会重命名所有变量,但您可以将内容导出到全局范围,例如:

但是,这只会将 MyClass 导出到全局范围,所有原型和静态方法都被重命名。有人会认为您可以遍历原型并导出它们,但不:

这不起作用。我知道的唯一方法是像这样手动添加它们:

我想公开大约 50 个原型,所以这种方法不是首选。有谁知道如何以方便的方式导出整个班级?

0 投票
1 回答
607 浏览

javascript - 闭包编译器高级 - 任何性能命中?

在线闭包编译器很棒:

http://closure-compiler.appspot.com/home

但是,当使用高级选项时,它会影响脚本的性能吗?IE,它一般会使其更快或更慢,还是取决于脚本本身?还是根本没有性能影响?

我只问这个,因为我编写的一些脚本对性能至关重要,我知道这个问题的答案是“试试看”,但我不太擅长运行这些测试,我不知道从哪里开始.

0 投票
2 回答
295 浏览

google-closure-compiler - 使用谷歌关闭 REST 服务删除调试代码?

如何使用 google 关闭 REST 服务从 javascript 中删除调试代码。我知道我必须像这样为 JS 编译器指定调试变量:--define='DEBUG=false'(在 if 条件下使用 DEBUG)。但是我如何将它指定给 REST 服务: http ://closure-compiler.appspot.com/home 我试过这个,但它不起作用。即:代码已优化,但仍包含调试代码:(

0 投票
6 回答
3413 浏览

javascript - 如何使用 Google Closure Compiler 检测 JavaScript 中的 Internet Explorer?

我有一个处理鼠标按钮事件的 JavaScript 函数。它必须能够区分鼠标左键和右键。遗憾的是,Internet Explorer 对 event.button 使用的值与所有其他浏览器不同。我知道如何解释它们,但我需要知道该走哪条路。

我通过依赖条件编译的 JavaScript hack 做到了这一点。就像这样:

我认为这是一种相当安全的方法,因为它基于 JavaScript 解析器功能,无法伪造,也不太可能被其他浏览器模仿。

现在我正在使用 Google Closure Compiler 来打包我的 JavaScript 文件。我发现它也像任何其他注释一样删除了条件编译注释。所以我尝试了不同的技巧。其中之一是这样的:

不幸的是,闭包编译器非常聪明,发现条件永远不会为真并删除该代码。另外,我不喜欢它,因为微软最终可能会修复那个 \v 错误,然后检测失败。

我可以只阅读类似 navigator.appName 或它的名称之类的内容,但这太容易伪造了。如果有人修改了他们的浏览器标识,他们不太可能实现其他 event.button 行为......

闭包编译器允许保留某些注释。我试过这个:

虽然这会在压缩后产生所需的结果,但它不是源形式的功能性条件注释。但出于调试原因,我需要我的 JavaScript 文件在压缩和未压缩的情况下都可以工作。

我有没有希望在不手动修改压缩的 JS 文件的情况下让它工作?

作为参考,这是我原始形式的完整功能:

0 投票
4 回答
2737 浏览

javascript - 为什么 Closure Compiler 不能识别自执行匿名函数中的类型声明?

通过 Closure Compiler 运行一个相当大的库时,我收到了很多"Unknown type"警告,当我的类型在自执行匿名函数中声明时,它们似乎发生了。这并没有什么特别之处,但是如果我去掉自执行函数,类型声明似乎可以工作(至少在这个简单的测试中)。

我不确定我的代码注释是否有问题,或者代码中是否有任何非法内容,但我认为这完全符合犹太教标准,也是模块化 API 的标准方法。

下面的测试代码创建了一个命名空间(只是一个普通的旧 JS 对象)并附加了一个枚举(一个对象字面量)和一个函数。

看起来不错,对吧?闭包编译器错误:

0 投票
3 回答
8802 浏览

javascript - 关闭编译器警告“危险使用全局 this 对象”?

亲爱的伙计们,Closure Compiler 在高级模式下给出了这个警告,下划线{this.

JSC_USED_GLOBAL_THIS:在第 200 行字符 33 处危险地使用全局 this 对象 hovers[i4].onfocus = function() {this.className += "Hovered";}

JSC_USED_GLOBAL_THIS:在第 201 行字符 32 处危险地使用全局 this 对象 hovers[i4].onblur = function() {this.className = this.className.replace(/Hove...

JSC_USED_GLOBAL_THIS:在第 201 行字符 49 处危险地使用全局 this 对象 hovers[i4].onblur = function() {this.className = this.className.replace(/Hove...

JSC_USED_GLOBAL_THIS:在第 218 行字符 38 处危险地使用全局 this 对象 buttons[i5].onmouseover = function() {this.className += "Hovered";}

Q1。这有什么好危险的?
Q2。我应该改变这个吗?
Q3。如何改进/解决此代码?

谢谢!

0 投票
2 回答
4348 浏览

javascript - ignore compiler warning from one file in Google Closure

I'm using an external library (Phonegap) in a fairly large Closure project. Unfortunately Phonegap generates a ton was compiler warnings (all "dangerous use of this"). Enough that it makes searching through the compiler output for warning about my own code pretty annoying.

Is there a way to silence just the warnings from one file?

0 投票
2 回答
1016 浏览

javascript - 奇怪的闭包编译器问题

我在高级模式下使用 Google 的 Closure Compiler,我遇到了一个奇怪的问题。这是未编译的代码,从运行的编译版本返回的日志语句:

出于某种原因,当通过后端数组访问 LocalStore 时,静态方法 isAvailable 不存在,而当通过其全局命名空间访问时,静态方法 isAvailable 存在。

谁能明白为什么?

编辑:作为参考,这里是方法声明: