chewett / cache-n-crunch

使用 uglifyjs 对 JavaScript 资产进行管理的资产管理器和 PHP 缓存系统

v0.5.3 2019-02-23 14:35 UTC

README

请注意:这是一个自定义缓存框架,旨在同时用于玩 uglify js 和 uglify css,并且用于不适合标准缓存系统的自定义网站。在生产环境中,您可能希望使用其他缓存框架,例如 assetic。

版本 0.1 是一个概念验证,以测试它是否工作。由于它确实看起来可以工作,因此我打算重新设计它以实现多个潜在目标

  • 能够指定要压缩和加载的文件
  • 对于每个压缩文件集,将生成一个文件。如果您压缩 A、B 和 A+B,它们将作为 3 个单独的压缩文件存在
  • 压缩 A 和 B 的输出将不会用于 A 和 B,它们将是完全独立的
  • 如果组合压缩文件在文件系统中不可用,将抛出异常
  • 在调试模式下,将加载原始文件而不是压缩文件
  • 在调试模式下,每次加载原始文件时都会对其进行压缩
    • 这些压缩文件将作为新版本保存,并允许通过调用特定的压缩方法轻松部署
    • 当手动压缩文件时,它将检查这些新的缓存文件,如果存在则使用它们以加快缓存部署速度
    • 有一些方法可以知道哪些压缩文件有新版本可以部署
  • 将支持 CSS 文件以合并为单个文件
  • 将需要将 uglify css 转移到类似于 uglify js 的方式
    • 可能添加一些类似的接口等?
    • 可能允许插入任何类型的压缩软件?
  • 将之前压缩的文件列表及其当前文件存储在“合适”的地方
    • 允许用户使用上述存储更改来重新压缩所有内容
    • 在文件已从文件系统中删除后,允许将压缩标记为“过时”
    • 有一些方法可以查看这些吗?
  • 对压缩文件有一些基本的版本控制

当前问题

可能的实现

  • JSON 存储以存储有关文件的所有数据
  • 然后将其导出到基本 PHP 数组文件,用作主要缓存
  • JSON 文件存储所有详细信息,如新文件等
  • 每次修改缓存时,JSON 文件都写入一个 PHP 文件,该文件用作引导程序

待办事项

  • 删除所有注释,但允许在文件顶部配置自定义注释
  • 允许获取所有先前压缩文件及其构成路径的详细信息
  • 允许通过标识符(使用构成部分的详细信息)进行压缩
  • 允许检查标识符以找到尚未更新的内容(构成文件中的更改)
  • 注释所有代码
  • 注释所有测试
  • 编写更多测试
  • 创建一个示例实现仓库?
  • 在导入 JSON 文件和包含 PHP 文件时运行速度测试?(仅使用包含 PHP 文件,因为我假设它将更快,可能并非如此?)

使用方法

目前没有可用的文档

安装

目前没有可用的文档

测试

目前没有可用的文档

许可

此项目受 MIT 许可证的许可。有关更多信息,请参阅 LICENSE 文件。