解析静态 JavaScript 依赖项的最佳实践
Best practices for resolving statically javascript dependencies
很遗憾我不得不在 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% 的大小,删除所有可选版本。
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- 用PHP/JS开发依赖表单字段的最佳方法
- 负载角度依赖关系之间的区别是什么,共享模块的最佳方式是什么
- 解析静态 JavaScript 依赖项的最佳实践
- 当javascript被禁用时,保护表单的最佳方法是依赖javascript验证
- 在JavaScript最佳实践中组织库依赖项
- 分发带有依赖关系的可重用JavaScript模块的最佳方式是什么?
- Angular JS依赖注入——最佳实践
- 开发相互依赖的npm包的最佳工作流程
- 记录javascript库依赖关系的最佳实践
- 在NodeJS中处理多个、顺序的、依赖的mongo查询结果的最佳方式
- NPM依赖管理最佳实践