Javascript/CSS/LESS 模块加载器 + 依赖关系计算插件(“ResourcesController”)

ResourcesController 是一个资源文件(例如 javascript、LESS、CSS)的模块加载器。它可以处理包之间的依赖关系和包内的依赖关系,以及各种预处理器(我目前只添加了 LESS CSS 预处理器,但可以使用可实现的 iPreprocessor 接口轻松构建其他预处理器)。

(您可以在 https://github.com/gfarrell/ResourcesController 找到它 - 请分叉它并改进它!)

我一直发现,当人们有很多很好地分离的 javascript 文件时,每个文件都有自己的类,每个文件都有自己的依赖关系,但随后您必须运行某种编译器将它们全部合并在一起(如 Juicer 或 BTMPackager),或者使用类似 require.js 的客户端异步模块加载器,这很令人沮丧。

ResourcesController 允许您定义文件包(如 CSS、LESS 或 Javascript 文件),这些文件包具有整个包或单个文件的依赖关系,然后在请求文件时,依赖关系树被扁平化,文件被打包、压缩并交付。

该插件还使用缓存(否则这将是一个非常慢的操作),因此如果文件自上次缓存以来没有更改,则会提供缓存的版本。最棒的是它使用的是原生 Cake 缓存,因此无论您选择哪种缓存引擎,它都已在使用它!

目前,它可以进行 CSS 和 Javascript 压缩以及 LESS 预处理。我想包含 CoffeeScript,但没有 PHP 版本,我不想在一般可用的插件中使用 exec() 命令。我希望它尽可能通用。

扩展起来非常容易,您只需使用 iPreprocessor 接口编写新的预处理器组件。

文档应该相当完整,所以看看,如果您使用它/您认为如何/遇到错误,请告诉我。

(您可以在 https://github.com/gfarrell/ResourcesController 找到它 - 请分叉它并改进它!)