问题标签 [google-closure]

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 回答
453 浏览

javascript - 基于 JavaScript 库的项目组织

我对 JavaScript 库世界很陌生。我之前自己用过 JS 来创建一个迷你社交网络,但这是我第一次使用 JS 库,我真的不知道该怎么做。

我打算使用 Google Closure,但我真的不确定我应该如何组织代码。我应该把所有东西都放在一个文件中,因为它是一个网络应用程序并且应该有一个屏幕吗?我应该将代码分成许多块并将它们放在不同的文件中吗?或者我应该将不同的对话框(如设置)放在单独的页面中,从而放在单独的文件中?

像所有程序员一样,我是一个完美主义者,所以请帮我解决这个问题,谢谢。

0 投票
2 回答
1748 浏览

documentation-generation - Google Closure Javascript 的文档生成器

我想为我的 Javascript 代码生成 HTML 文档。我的代码中的注释以某种格式编写,Google Closure Compiler 可以使用它来优化我的代码。

例子:

我正在为 Javascript寻找类似http://yardoc.org的东西。

您可以推荐哪些工具?Google Closure 代码是否有任何特定工具?

0 投票
1 回答
2118 浏览

javascript - 为什么 Google 的 Closure Compiler 会留下一些不必要的空格或换行符?

我注意到每次使用Google 的 Closure Compiler Service时,都会在页面右侧显示的编译代码中留下一些不必要的空格。这些对应于已编译代码的托管版本中的换行符。

例如(注意换行符,每一个似乎都没有必要):

http://troy.onespot.com/static/stack_overflow/closure_spaces.js

迄今为止,我只是手动删除它们,但我很好奇它们为什么在那里。是否限制托管版本代码的行长以使其更具可读性?编译器是否足够聪明,可以故意留下或插入那些以最大化 GZIP 压缩效果?

我知道它们对文件大小的影响微乎其微,但是在缩小源脚本中的每个最后一个字节方面付出了如此多的努力,为什么它们在那里是违反直觉的。

0 投票
4 回答
10700 浏览

javascript - 防止闭包编译器重命名某些变量

我有一个 javascript 文件,其中包含一个不能重命名的全局对象(_gat来自 Google Analytics 异步跟踪器)。

Google Closure Compiler 不得重命名此对象,因为 Google Analytics 会查找具有此特定名称的变量。

我查看了提到的 Javascript Doc 符号:http ://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到任何关于“保护”的信息多变的。

无论我使用简单编译还是高级编译,问题都存在。

如何确保_gat变量不被重命名?

0 投票
3 回答
4365 浏览

javascript - 如何使用 Google Closure 编译器删除未使用的 JavaScript 代码?

如何使用 Google Closure 编译器删除未使用的代码?

我正在使用 JQuery Slider 控件,但在 JQuery 中没有使用其他任何东西。所以我读到高级模式下的 Google Closure 编译器可以删除未使用的代码,但我不知道如何.

我有frontpage.html,它从我网站上托管的那个html页面链接到外部JQuery、JQuery UI和JQuery Slider控件。

在我的 frontpage.html 上,我还在启动 JQuery Slider 控件的 HTML 中嵌入了 JavaScript。

如何使用我使用在线 Closure Compiler来评估我的 frontpage.html、JQuery、JQuery UI 和 JQuery Slider 以删除我不使用的所有未使用的 JQuery 代码?

0 投票
8 回答
21901 浏览

jquery - 带有 jQ​​uery 应用程序的 Google Closure 编译器

我在 jquery 和用它构建的大型应用程序上投入了大量时间。最近我一直在回顾Google Closure Library,但此时发现它并不像 jquery 那样优雅。我相信它可能有一些潜力并且会更多地研究它,但现在我打算继续使用 jQuery 作为我的基础框架。

但是,我对Google Closure Compiler印象非常深刻。我很想在我的应用程序的构建过程中开始使用它。不幸的是,尚不清楚将它用于不遵循标准 Google Closure 标准的项目有多容易。

在开发基于 jquery 的项目和使用 Google Closure Compiler 方面是否有任何最佳实践或良好资源?例如:

  1. 用它编译jquery和jquery-ui是否有意义,还是我应该继续指向google CDN上的这些资源?我确信我的 jquery 和 jquery-ui 会更小,因为我没有使用库的所有功能,但是指向 CDN 会增加文件已经在访问者缓存中的机会。

  2. 我的应用程序被分成许多文件,每个函数都有一个文件。我想按特定顺序将它们组合起来,并将它们缩小到我网站上每个部分的文件中。我想自动化这个过程。

  3. 目前我的项目有一个 java 后端,并且是用 Maven 构建的。将 Google Closure Compiler 添加到此构建过程是否有意义?

基本上,我正在寻找专门用于将 Google Closure Compiler 与 jQuery 结合使用的任何好的资源。

0 投票
2 回答
622 浏览

javascript - 在 VML 和 Internet Explorer 中禁用图形元素选择

我有一个 JavaScript 应用程序,可以让用户在绘图区域周围移动形状,而我碰巧正在使用 Google Closure 库。在 FF/Safari 中一切都很好。在 IE 中,随着图形元素的移动,它们会被浏览器(移动元素和其他元素)选中,以不可预知的方式在某些元素周围显示彩色虚线背景:

http://i.imgur.com/O33MN.png

如何在 IE 中关闭此行为?

0 投票
3 回答
7494 浏览

wysiwyg - 谷歌关闭编辑器/所见即所得

有没有人有使用 Google Closure Editor/WYSIWYG 的经验?我正在考虑从 CKEDITOR 转移到 Google Closure Editor/WYSIWYG。理想情况下,我喜欢使用 etherpad 编辑器,但似乎没有人将编辑器与所有应用程序分开。

无论如何,对于 Google Closure Editor/WYSIWYG,有谁知道,它是否支持在 Google Docs 中看到的实时协作方面?

0 投票
2 回答
550 浏览

javascript - 使用 Google Closure 时未在 Safari iPad 上分配父元素的图形元素

我正在使用 Google 闭包在 HTML/JS 中创建一个简单的交互式图形,以便在 iPad Safari 上查看。

下面的代码示例显示了 Safari Mac 和所有其他主要浏览器上的预期行为(单击时会出现一个圆圈会生成控制台消息),但不是 Safari iPad。没有向圈子注册事件处理程序。相反,会引发错误。

错误读取(从 base.js 抛出):

第 804 行 JavaScript 错误 ... TypeError:表达式“obj”[null] 的结果不是对象。

我想我已经将问题追溯到缺少圆的 DOM 元素,以及在圆上注册侦听器试图在 circle.getElement() 上注册侦听器的事实。查询时,circle.getElement() 返回 null,解释错误。请注意,控制台输出消息在 iPad Safari 上打印为 null,但是:

在 Mac Safari 上。

在 Mac 和 iPad Safari 上,圆圈的绘制方式相同。唯一的区别是错误。使用“touchstart”作为事件名称而不是 goog.events.EventType.MOUSEDOWN 没有区别。

我想用 circle 注册一个事件侦听器,而不会在 iPad 上生成错误。我怎样才能做到这一点?

0 投票
2 回答
270 浏览

javascript - 谷歌关闭 MSBuild 任务错误

我正在尝试在我的 MSBuild 文件中编写一个自定义任务,以使用 Google Closure Compiler 压缩一些 js 文件。我从该站点下载了 ClosureCompiler.dll 和 ClosureCompiler.tasks 文件,并将它们保存在我的 m/c 上的一个文件夹中。我在我的 csproj 文件中添加了以下行

test.js 文件保存在我的项目文件的根目录中。我不想包含可选的 ApiUrl,因为我想使用 ClosureCompiler.dll 在本地压缩文件。ClosureCompiler.tasks 文件是

但是,当我尝试编译项目时,它给了我一个错误:

任何人都可以帮助解决问题或我做错了什么吗?