问题标签 [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.
javascript - Javascript 社区是否有依赖项检索(如 maven 或 gem)?
Java 有maven或ivy可以从各种公共存储库中检索依赖的 jar。
Ruby 有更好的依赖检索工具:gem 和 bundle。
Javascript 社区是否有任何等效工具?我找到了许多工具来管理将依赖项动态加载到浏览器中。我不是在寻找那些工具。
具体来说,我正在寻找一个新开发人员用来检索他们需要的 javascript 文件的工具。开发人员运行此工具并:
- 它查看项目依赖描述文件
- 发现项目需要jquery-ui-1.8.7、tiny_mce-3.4.3.2和prettyLoader-1.0.1
- 从网络检索 jquery-ui-1.8.7.min.js、prettyLoader-1.0.1.js、tiny_mce-3.4.3.2
- 将 .js 和 .css 安装到本地存储库中
- 意识到 jquery-ui 依赖 jquery-1.6.1 并下载/安装 jquery
- 确定 tiny_mce 需要 jquery 插件,并下载并安装它。
毕竟,开发人员拥有所需的所有 js/css 文件的本地副本。
如果出现新的 tiny_mce 或 jquery,项目文件会更新,开发人员只需返回工具即可获得所有新文件。
如果没有指定 js 库的版本,则检索最新的发布版本。
我刚才描述的是 maven/ivy/gem 在 java/ruby 空间中所做的事情。
显然,我可以使用 maven 来满足我自己的需要,但是 javascript 社区是否已经准备好了任何东西?
更新:
Raynos 提到了npm 。Npm 以 node.js 为中心(没关系)。但是,公共存储库中的已发布库和元数据有限(版本、作者、项目 url 因容易发现而丢失)。
但是,看起来 npm 是今天的解决方案。不幸的是,这对我们来说还不够,但这就是生活。
我实际上很惊讶 jquery 或 google-closure 没有项目管理工具。(如果我错了,请告诉我!)
更新:现在流星已经与陨石一起访问和更新大气库。厉害了。
javascript - 在 jQuery 中使用 Google 闭包模板
我们开始使用 JavaScript 和 HTML5 创建一个应用程序,它将使用 REST API 访问服务器资源,利用我们的开发团队已经熟悉的 jQuery 的出色和易用性。此应用程序将制作多语言版本。我们后来决定使用 JavaScript 编写 DOM,这将允许我们灵活地使用我们的 UI 位与我们的其他应用程序集成,并将使用 jQuery UI 小部件创建我们自己的小部件。然后,只需在我们其他应用程序的相关页面中添加一个引用 JavaScript 文件的脚本标记,我们就可以完成该特定功能的大部分集成。
因为使用 JavaScript 创建 DOM 需要大量编码,所以我们开始寻找可以帮助我们轻松地将 HTML 转换为 JavaScript 以创建 UI 的工具,因此 Google Closure Templates 出现了。
此时我想到的是,使用 Google 闭包来编写 UI DOM 位,因为它可以快速为我的 DOM 提供 JavaScript,然后为其他 JavaScript(即用于服务器端通信和其他 UI 逻辑,如一旦获得更改 UI来自服务器的响应和 x 应该在单击 z 类的东西时变为 y)需要手写,我应该使用易于编写的 jQuery。
但是在看了这个问题之后,我发现两者都是相互比较的,这让我对一些事情感到疑惑。
如果我按照我当时的想法去做,我能否在我的 jQuery 小部件中调用 Google Closure 生成的函数来呈现 UI?
如果我离开 jQuery 并只使用 Google Closure 是否足以满足我的要求?
当我开始阅读 Google Closure 文档时,我发现它拥有自己的全新世界,并且涉及到学习曲线。这个多少钱?如果它不是很多,那么我们的 5 名开发人员团队将准备好学习它。
在 2 和 3 上,如果任何已经使用过它的人都可以提供一些见解,那就太好了。
注意:- 以防万一它有任何相关性,我们正在为服务器端开发 Microsoft .NET 堆栈。
javascript - 为 google-closure 项目中的依赖项生成脚本标签的最快方法是什么?
我正在学习 JavaScript 和 Google Closure,显然(一旦你开始使用模板和库的各个部分)手动管理依赖项变得很困难。
我知道该库提供了一些 python 脚本来帮助解决这个问题,但我不太清楚使用它们的最佳方式。
(我知道最终我会将它全部编译成一个“最小化”文件,但为了开发和我自己的理解,我觉得我需要先搞清楚这一点!)
我最接近的是使用“closurebuilder.py”脚本以依赖顺序生成文件列表......
...但我仍然需要手动将每一个包装在脚本标签中并将它们粘贴到我的 html 中。我错过了什么吗?有没有更直接的方法来做到这一点?
javascript - Google Closure *.bat 用于后期构建?
只是想知道我将如何为 Google Closure online 的 *.bat 或 *.exe 工具准备 [或者是否有人已经有一些可以共享的代码]?我试图简单地运行一个带有 javascripts 列表的 *.bat 文件
哪个会发送到 Google Closure API,然后压缩这个文件列表?它将允许更轻松的监控和更新?
javascript - 如何让 Google 的闭包库加载更快?
我正在编写一个基于 [ libphonenumber ] 的简单电话号码解析器。不幸的是,“http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js”需要永远加载,当我获取文件并将其包含为 src="base.js" ,弹出一堆错误。
我的猜测是,这是因为该库尚未加载,因此 goog.require() 语句失败。
我能做些什么?
javascript - 如何将我自己的 JavaScript 库添加到 ClojureScript?
我想使用 ClojureScript 编写一个 Google Chrome 扩展。使用 ClojureScript,我可以使用所有 Google Closure 库,但这些库中不包含对 Chrome 浏览器的 afaik 访问。所以我想把所有 Chrome 的东西都包装在我自己的 JavaScript 库中。
到目前为止,我尝试创建自己的 jar,它有一个 JavaScript 文件,它只创建一个 Foo 对象并导出构造函数。我已将此 jar 添加到 ClojureScript 编译器的 lib 目录中(例如 goog.jar),但到目前为止没有运气:
有没有人试过这个?
javascript - Google Closure Templates 为每种语言生成多个 JavaScript 文件,而不是具有单独资源文件的单个 JavaScript 代码库
我正在使用 Google Closure Template 来使用 JavaScript 编写我的应用程序的 UI。查看这个问题,了解我使用 Google Closure Template 的详细原因。我希望它是多语言的。我看到有一个--locales
开关,并且还查看了项目中提供的示例here和here。在 README_FOR_EXAMPLES 文件中写道
+ simple_generated_en.js, features_generated_en.js,
simple_generated_x-zz.js, features_generated_x-zz.js SoyToJsSrcCompiler 在 simple.soy 和 features.soy 上执行时生成的 JS 文件(语言环境是 'en' 和 'x-zz'使用共享示例目录“示例”中翻译的 XLIFF 文件和上述编译时全局文件)。我们需要 simple.soy 和 features.soy,因为 features.soy 中的一些模板调用 simple.soy 中的模板。注意:有关生成这些文件的示例 Ant 目标(和命令行参数),请参阅顶级“build.xml”中的目标“js-features-example”。
我所期望的是,它将仅生成一个 JavaScript 代码库,该代码库将根据在调用模板函数之前在运行时提供的选项使用来自适当语言环境文件的所需字符串。闭包模板有可能吗?
nested - 在另一个模板中嵌套闭包模板
我确信应该有某种方法可以从模板中呈现另一个模板,这样我就不必复制粘贴类似的块。我只是无法弄清楚。
javascript - Google Closure - 将数据表单数据转换为 json 对象
是否可以从表单数据中获取 JSON?我只能获取数据映射或字符串表示。
javascript - google 闭包的 typedef 实际上是做什么的?
我了解它的用途 - 我可以看到能够为复杂类型定义别名并在文档中使用它的好处。所以你可以定义一个类型,比如......
...然后用它来记录一个函数,比如...
但我不确定的是,如果它只用于文档和编译器的静态类型检查,那么为什么 typedef 需要那行 JavaScript?别名不能完全在文档注释块中定义吗?而且,如果您直接提供代码(不编译它),JavaScript 解释器会如何处理 typedef 注释之后的那行代码?