1 个不稳定版本

0.2.0 2024 年 7 月 16 日

#391缓存

Download history 103/week @ 2024-07-12 29/week @ 2024-07-19 58/week @ 2024-07-26 5/week @ 2024-08-02

97 次每月下载

Apache-2.0

40KB
865

artushak-web-assets

这是一个简单的 Web 资产管理器。它可以管理资产清单并在源文件或资产清单更改时生成新的文件版本。在 Web 中,它可以用来允许远未来缓存过期头。

例如,您可能有一个 SASS 文件和一个正确的清单。如果此文件更新,并且您运行 pack 函数,您的文件将经过过滤器处理并复制到输出目录,并带有新的名称。

资产清单格式

资产清单是一个包含字段的 JSON 字典

  • public_assets 是要复制到输出目录的资产的名称列表,每个列表项是字符串
  • assets 是资产定义的列表,每个列表项是一个具有以下键的字典
    • output_base_path(可选),值是输出路径的前缀(字符串)
    • extension,值是文件扩展名(字符串)
    • source,值是文件源数据,是一个具有以下键的字典
      • File(如果资产是从源文件加载的),值是文件路径
      • Filtered(如果资产是通过过滤器生成的),值是一个具有以下键的字典
        • filter_name,值是过滤器名称(使用过滤器注册表)
        • input_names,值是输入资产名称列表
        • options,值是具有任意字符串键和作为选项传递给过滤器的值的字典,可能值可以是
          • "Flag" 是标志选项
          • {"String": "STRING"} 是字符串选项(将值放在 STRING 代替)
          • {"StringVec": ["STRING1", "STRING2"]}是字符串列表选项(用值代替STRING1STRING等)
          • {"Bool": false}是布尔值选项(false)
          • {"Bool": true}是布尔值选项(true)

示例

{
    "assets": {
        "style_sass": {
            "extension": "sass",
            "source": {
                "File": "style.sass"
            }
        },
        "style_css": {
            "extension": "css",
            "source": {
                "Filtered": {
                    "filter_name": "SASS",
                    "input_names": [
                        "style_sass"
                    ],
                    "options": {
                        "mode": {
                            "String": "Compressed"
                        }
                    }
                }
            }
        },
        "icon1_svg": {
            "output_base_path": "images",
            "extension": "svg",
            "source": {
                "File": "icon1.svg"
            }
        }
    },
    "public_assets": [
        "style_css",
        "icon1_svg"
    ]
}

资产过滤器

资产过滤器是AssetFilter特质的实现。它们接受输入文件路径列表和文件路径输出。例如,资产过滤器可以编译SASS,压缩文件内容等。过滤器还从清单中获取选项字典。

依赖关系

~5–7MB
~152K SLoC