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

静态解析javascript依赖关系的最佳实践,javascript,dependencies,preprocessor,Javascript,Dependencies,Preprocessor,很遗憾,我不得不在2012年4月问这个问题,但我知道解决这个问题的方法很少 因此,我想要一个工具,用于静态编译javascript文件,解析依赖关系。 更确切地说,我需要这样一种工具(我们称之为sometool),它可以执行以下操作: 扫描文件夹,查找所有*.js文件 解析这些文件并找到一些非常简单的同步和100%符合js的指令。所谓同步,我的意思是没有传递onload处理程序这样的事情——它只是关于静态文本预处理。我所说的100%符合js,是指它看起来像是js观点的评论——类似于/@incl

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

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

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

我确实意识到所有这些对你们大多数人来说都是显而易见的,但是现在的JavaScriptor在谈论依赖关系管理时理解的有些不同——例如,请参见。

实际上有一个答案,它的名字是:

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

这样,您就可以拥有一个完美的静态构建过程。就我个人而言,我在很多方面都使用它。举个例子:

我并没有按照您描述的方式解析javascript依赖关系,但我使用了样式表依赖关系(用实际文件替换
@import
行)。因此,对javascript文件执行同样的操作相当简单。另外,这些构建脚本的最后一步是将新生成的文件复制到我的Apache网站目录中,这实际上是一个静态构建过程,您已经完成了


不要担心文件大小,我修改了HTML5锅炉板上已有的配置文件。实际上,我可以将该文件缩小到10%,删除所有可选版本。

您应该看看。它可以捆绑和打包JavaScript文件,并支持include。不过,您可能需要编写一些样板代码。似乎有一个脚本允许sprocket从与其捆绑的命令行运行。而且是红宝石的。不知道这是否是个问题。

@limelights:我同意,但OP明确排除了这一点。@jAndy,谢谢你的回答。我很难想象一个简单的、开箱即用的方法来使用ant构建js。你提供的链接并没有劝阻我。)@shabunc:例如,我登录我的bash,键入
cd/project/name/build
,然后键入
ant build
。就这样。然后ANT会这样做:连接所有js文件,所有css文件,解决任何css依赖,去除调试消息,缩小所有js/css/html,为js和css文件创建唯一的哈希键,并用该名称替换
src
属性(也将文件名重命名为该名称)。就我个人而言,我不会使用ANT,而是使用Make。然而,这只是个人喜好。只需在文件中搜索import语句,并将其替换为所引用文件的内容。不过要注意循环引用@丹尼尔·保利格:是的,用Make来代替也没什么错。我想它有蚂蚁所拥有的一些选择。ANT的优点在于它提供了很多常用的东西,比如随时可用的作业,另外它运行在java上,并且与操作系统非常兼容。谢谢你的建议。