kasparsd/minit

WordPress插件,用于合并CSS和JavaScript文件

安装: 369

依赖: 0

建议者: 0

安全: 0

星标: 287

关注者: 31

分支: 48

开放问题: 11

类型:wordpress-plugin

1.6.0 2024-09-10 14:01 UTC

This package is auto-updated.

Last update: 2024-09-10 18:24:45 UTC


README

将所有CSS和JavaScript文件放入专门的包中,以便浏览器缓存并在请求之间重用。它假设单个请求具有稍大的传输大小比多个较小的请求(即使具有HTTP/2多路复用)更高效。

安装

使用Composer安装安装

composer require kasparsd/minit

或手动下载最新版本文件

工作原理

  • 将所有CSS文件和JavaScript文件合并到一个文件中(每个类型的.js.css),并将它们存储在WordPress上传目录下的/minit中。有关如何排除包中的文件,请参阅下面的配置部分。

  • 使用排队的资产的综合版本号对包进行版本控制。

  • 异步加载合并的JavaScript文件。这可能会破坏所有依赖于jQuery可用的内联脚本。有关如何禁用此功能,请参阅下面的配置部分。

屏幕截图

  1. 所有CSS文件合并到一个文件中
  2. 所有外部JavaScript文件异步加载

配置

有关更多文档,请参阅Wiki

禁用异步JavaScript

使用minit-script-tag-async过滤器以同步方式加载合并的JavaScript

add_filter( 'minit-script-tag-async', '__return_false' );

排除文件

使用minit-exclude-jsminit-exclude-css过滤器排除合并包中的文件

add_filter( 'minit-exclude-js', function( $handles ) {
    $handles[] = 'jquery';

    return $handles;
} );

与块主题集成

基于完整块的主题只为当前请求所需的块排队的单个样式表。这导致请求之间的包是唯一的,从而抵消了缓存重用的目的。使用should_load_separate_core_block_assets过滤器,在所有请求上排队单个block-library样式表

add_action(
    'plugins_loaded',
    function () {
        if ( class_exists( 'Minit_Plugin' ) ) {
            // Add late to override the default behaviour.
            add_filter( 'should_load_separate_core_block_assets', '__return_false', 20 );
        }
    },
    100 // Do it after all plugins are loaded.
);

最小化CSS

使用此过滤器对创建的包应用基本的CSS最小化

add_filter(
    'minit-content-css',
    function ( $css ) {
            $css = preg_replace( '/[\n\r\t]/mi', ' ', $css ); // Line breaks to spaces.
            $css = preg_replace( '/\s+/mi', ' ', $css ); // Multiple spaces to single spaces.

            return $css;
    },
    5 // Do it before the debug comment in the head.
);

Minit插件

致谢

Kaspars Dambis贡献者创建。