3

很遗憾我不得不在 2012 年 4 月问这个问题,但我知道解决这个问题的方法很少。

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

  • 扫描文件夹,找到所有*.js文件
  • 解析这些文件并找到一些非常简单的同步且 100% 符合 js 的指令。通过同步,我的意思是没有像传递 onload 处理程序这样的事情——它只是关于静态文本预处理。100% js-compliant 我的意思是它看起来像是从 js 的角度来看的评论——比如// @include
  • 使用一些可以自定义的配置来解析包含指令中使用的路径。
  • 用真实输出替换所有包含并将其放入单独的文件夹中。

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

4

2 回答 2

3

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

于 2012-04-26T15:02:25.890 回答
2

其实有一个答案,它的名字是:Apache ANT

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

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

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

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

于 2012-04-26T14:41:35.197 回答