我知道这个问题经常以类似的方式出现,但似乎没有解决方案完全符合我的需求。我有以下问题:
在开发中,我使用多个 JS 文件(每个“对象”一个文件)。这些 JS 文件相互之间有几个依赖关系 - 有些依赖于其他文件,我需要先加载它们。目前我使用RequireJS以正确的顺序加载每个JS文件,所以我为每个文件定义了一个模块。很好,花花公子。但现在我想将我所有的 JS 文件连接成一个大 JS 文件,它应该是一个模块本身。我使用 RequireJS 优化器 r.js 来做到这一点。我的问题:每个 JS 文件都连接到一个大的 JS 文件,但是每个对象的模块定义都包含在其中。我没有一个大文件中有一个大模块,而是一个大文件中有很多模块。
之后,我尝试了 grunt 进行连接,效果很好,但忽略了文件的依赖关系。它只是按字母顺序连接每个文件,或者我必须在我的 gruntfile 中硬编码顺序。
我该如何解决这个问题?
就像我的问题的一个例子:我有以下文件(伪代码):
FileA
- define FileA module
- depends on FileB
- FileA Logic
FileB
- define FileB module
- FileB Logic
我想要这个输出:
LibFile
- define LibFile module
- FileB Logic, FileA Logic
但是我用 r.js 得到了这个(从 FileA 和 FileB 复制模块定义):
LibFile
- define FileB module
- FileB Logic
- define FileA module
- depends on FileB
- FileA Logic
我用咕噜声(错误的顺序)得到这个:
LibFile
- FileA Logic
- FileB Logic
也许这个问题有点愚蠢,但我无法用每个人似乎都在使用的工具来解决这个问题……我也尝试了 grunt-requirejs 插件。但它抛出了几个我无法解决的错误。
谢谢你,皮波