【问题标题】:What is the best practice to consolidate multiple Javascript files?合并多个 Javascript 文件的最佳做法是什么?
【发布时间】:2013-09-20 05:00:57
【问题描述】:

对于 CSS,我可以使用 SASS 将一个 CSS 文件导入另一个 CSS 文件并只生成一个 CSS 文件。 Javascript文件的类似方法是什么?

【问题讨论】:

  • 大多数 JS 压缩器都可以做到这一点(除了让 JS 更紧凑)。
  • 这可能取决于您选择的服务器端技术。例如 ASP.NET 使用 bundling and minification
  • 您的后端使用什么技术?
  • 我们的后端使用的是 Django,但我一直在寻找一种可以独立工作而不受特定框架束缚的工具。

标签: javascript performance


【解决方案1】:

您可能想查看Closure Compiler(这是 Google 产品)。

您可能需要Closure Compiler Application 形式的产品。

示例工作流程可能如下所示:

  1. 创建 JS 文件和路径列表
  2. 运行命令编译和连接文件 (java --jar compiler.js --js path_to_file1.js --js path_to_file2.js (etc.) compiled.js)

Closure Compiler 还有一个相关项目Closure Stylesheets,它对样式表做同样的事情。

这种方法当然意味着有一个预编译步骤。根据您的后端,还存在在构建页面时进行编译的库。例如,对于 JSP,有一个标签库 Granule 在页面构建时创建已编译的 JS 和 CSS 文件。

还有第三种可能性:模块化。由于您给出了能够在 SASS 中导入 CSS 文件的示例,因此 JavaScript 的类似物是使用模块库,使用 CommonJS standard 或(我更喜欢的那个)AMD(异步模块定义)模式,它我个人使用过RequireJS。 RequireJS 还附带了一个很好的优化工具,它将捆绑(缩小、压缩、连接等)应用程序所需的所有文件

更新

既然您提到您在 cmets 中使用 Django(也可能有助于使用此信息更新问题),请查看 this answer 是否也有帮助


【讨论】:

  • 可能有助于解释为什么这被否决了。对于被问到的问题,我的回答似乎很合理。有任何改进意见吗?
  • 谢谢,我现在会注意这一点。看来我可以先了解有关现有 JS 预处理器的更多信息。
【解决方案2】:

您可以使用minify,它允许您缩小和合并javascript 文件。它也适用于 CSS。

【讨论】:

  • 不,我的错。它不是 Google 产品。
猜你喜欢
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2014-07-11
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多