解析静态 JavaScript 依赖项的最佳实践

Best practices for resolving statically javascript dependencies

本文关键字:最佳 依赖 静态 JavaScript      更新时间:2023-09-26

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

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

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

我确实意识到所有这些对你们大多数人来说听起来很明显,但是现在的JavaScripter在谈论依赖管理时理解的东西略有不同 - 例如,请参阅require.js。

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

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

Make一样的ANT是一种几乎可以为您完成任何工作的工具。连接文件、剥离、读取文件/折叠、最小化等。指令是通过.xml文件完成的,许多作业已经存在,但当然你可以编写自己的作业。

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

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

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