sitegeist/iconoclasm

Neos 图像的 Imagemin 集成

v2.0.2 2023-02-23 16:37 UTC

README

使用 imagemin-cli 或其他工具优化 Flow 和 Neos 的图像。

此包受 MOC.ImageOptimizer https://packagist.org.cn/packages/moc/imageoptimizer 和 Sitegeist.Origami https://github.com/sitegeist/Sitegeist.Origami 启发,基本上执行相同的任务。

与前述包的差异

  • 所有需要优化的媒体类型必须明确启用。
  • 默认情况下使用 Imagemin-cli 对所有启用的媒体类型进行操作,但可以根据需要替换。
  • 由于异步缩略图现在是默认设置,因此不需要像 Sitegeist.Origami 那样使用工作队列。
  • 稍后导入的本地临时文件应支持云存储(尚未测试)。
  • 具有文件扩展名的临时文件允许使用依赖文件扩展名的工具。

作者 & 赞助商

此包的开发和公共发布得到了我们雇主的慷慨赞助 http://www.sitegeist.de

安装

Sitegeist.Iconoclasm 通过 Packagist 提供。只需将 "sitegeist/iconoclasm" 添加到 composer.json 的 require 部分,或运行 composer require sitegeist/iconoclasm。我们使用语义版本控制,因此每次重大更改都会增加主要版本号。

除了 Flow 包之外,还需要在服务器上提供 imagemin-cli 和所有插件或其他工具。您可以使用 npm 全局安装库。

npm install --global imagemin-cli imagemin-pngquant imagemin-webp imagemin-mozjpeg

您还可以将包安装到专用文件夹中而不是全局。在这种情况下,您必须使用完整路径配置 imagemin 命令,如 /your/folder/node_modules/imagemin-cli/cli.js

npm install --prefix /your/folder imagemin-cli imagemin-pngquant imagemin-webp imagemin-mozjpeg

!!!请通过分别执行每个插件来验证 CLI 工具是否正常工作。特别是 imagemin-webp 工具有时需要额外的库!!!

配置

使用 Sitegeist.Iconoclasm 配置,可以配置使用的 commandmediaTypes 部分允许启用某些类型,并允许覆盖此类型的全局 command

Sitegeist:
  Iconoclasm:

    #
    # The imagemin cli command, you may want to configure an explicit path here for your server
    #
    # The tool can be installed npm install --global imagemin-cli imagemin-pngquant imagemin-webp imagemin-mozjpeg imagemin-svgo
    #
    command: 'imagemin {input} > {output}'

    #
    # The media types that are to be optimized
    #
    # Each media type has to be enabled for optimizing. In case specific options or even 
    # an different command shall be used the global `command` can be overwritten for each type.
    #
    mediaTypes:
      'image/jpeg':
        enabled: true
        command: 'imagemin {input} --plugin=mozjpeg > {output}'

      'image/png':
        enabled: true
        command: 'imagemin {input} --plugin=pngquant > {output}'

      'image/webp':
        enabled: true
        command: 'imagemin {input} --plugin=webp > {output}'

      'image/gif':
        enabled: false

      'image/svg':
        enabled: false

用法

  • 清除缩略图以生成新的缩略图,这些缩略图将自动优化。

./flow media:clearthumbnails

  • 刷新 Fusion 缓存

./flow flow:cache:flushone Neos_Fusion_Content

  • 查看系统日志进行调试和错误输出。