解决静态javascript依赖关系的最佳实践

时间:2012-04-26 14:33:59

标签: javascript dependencies preprocessor

我很难过,我不得不在2012年4月提出这个问题,但我知道很少有办法解决这个问题。

所以,我想要一个用于静态编译javascript文件,解决依赖关系的工具。 更确切地说,我想要这样的工具(让我们称之为sometool)可以执行以下操作:

  • 扫描文件夹,找到所有*.js个文件
  • 解析这些文件并找到一些非常简单的同步和100%符合js的指令。通过同步我的意思是没有像传递onload处理程序这样的东西 - 它只是关于静态文本预处理。 100%js兼容我的意思是它看起来像js观点的评论 - 类似于// @include
  • 解析include指令中使用的路径,使用一些可以自定义的配置
  • 用实际输出替换所有include并将其放入单独的文件夹中。

我确实意识到这一切对你们大多数人来说都是显而易见的,但是现在javascripters在谈论依赖性管理时理解了一些略有不同的东西 - 例如,请参阅require.js

2 个答案:

答案 0 :(得分:3)

你应该看看sprockets。它可以捆绑和打包JavaScript文件和支持包括。 你可能不得不写一些样板代码。似乎有一个脚本允许sprocket从与它捆绑的命令行运行。它在Ruby中。不知道这是不是一个问题。

答案 1 :(得分:2)

实际上只有一个答案,其名称为:Apache ANT

Make 这样的ANT,是一个几乎可以为你完成任何工作的工具。连接文件,剥离,读取文件/文件夹,迷你等等。说明是通过 .xml 文件完成的,许多工作已经存在,但当然你可以编写自己的工作。

这样,您就可以拥有一个完美的静态构建过程。我个人在severval基础上使用它。看一下例如:https://github.com/jAndreas/typeof-NaN-2.0/tree/master/build

我没有像你描述的那样解决javascript依赖关系,但我在那里使用样式表依赖关系(用实际文件替换@import行)。因此,使用javascript文件执行相同操作相当容易。此外,这些构建脚本的最后一步是将新生成的文件复制到我的 Apache网站目录中,它实际上是一个静态构建过程,您就完成了。

不要害怕文件大小,我在那里修改了 HTML5样板文件中存在的配置文件。我实际上可以将该文件缩小到10%大小,删除所有可选构建。