pavlovich-app/yii2-compressor

运行时资产文件(CSS,JS)的压缩和合并。

安装: 16

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 1

开放性问题: 0

类型:yii2-extension

2.0.4 2024-01-11 01:56 UTC

This package is auto-updated.

Last update: 2024-09-17 22:02:04 UTC


README

运行时资产文件(CSS,JS)的压缩和合并。

安装

运行时压缩和合并资产文件(CSS,JS)的扩展。

此扩展的推荐安装方式是通过 composer

运行以下命令

composer require --prefer-dist pavlovich-app/yii2-compressor "2.*"

或者

"pavlovich-app/yii2-compressor": "2.*"

将以下内容添加到您的 composer.json 文件的 require 部分中。

使用方法

##配置

###最小配置

'bootstrap' => ['assetMinifier'],
'components' => [
    // ...
    'assetMinifier' => [
        'class' => \compressor\Component::className(),
    ],
    // ...
],
// ...

###完整配置

'bootstrap' => ['assetMinifier'],
'components' => [
    // ...
    'assetMinifier' => [
        'class' => \compressor\Component::className(),
        'minifyJs' => true,                     // minify js files. [default]
        'minifyCss' => true,                    // minify css files [default]
        'combine' => true,                      // combine asset files. [default]
        'createGz' => false,                    // create compressed .gz file, (so the web server doesn’t need to
                                                // compress asset files on each page view). Requires
                                                // special web server configuration. [default]
                          
                                                
        //'minifier' => [                        // Settings of the components performing the minification of asset files
        //    'workPath' => compressor\Minifier::WORKPATH_SOURCE, // default setting
        //    'js' => '', // override default minifier, see available minifiers below
        //    'css' => '', // override default minifier, see available minifiers below
        //],
        
        'combiner' => [
            'class' => 'compressor\Combiner',
            'combinedFilesPath' => '/lajax-asset-minifier'      // default setting
        ]
    ],
    // ...
]
// ...

####可用的压缩器

  • #WEB
'js' => [                           // minify js via web API
    'class' => 'compressor\minifiers\WebJsMinifier',
    'url' => 'http://javascript-inifier.com/raw'   // default setting
],
'css' => [
    'class' => 'compressor\minifiers\WebCssMinifier',
    'url' => 'http://cssminifier.com/raw'           // default setting
]
  • #PHP(默认压缩器)
'js' => [                                        // Default JS minifier.
    'class' => 'compressor\minifiers\PhpJsMinifier',
    // default settings, you can override them
    'options' => [
       'flaggedComments' => true                // Disable YUI style comment preservation.
    ]
],
'css' => [                                       // Default CSS minifier.
    'class' => 'compressor\minifiers\PhpCssMinifier',
    // default settings, you can override them
    'filters' => [
        'ImportImports' => false,
        'RemoveComments' => true,
        'RemoveEmptyRulesets' => true,
        'RemoveEmptyAtBlocks' => true,
        'ConvertLevel3AtKeyframes' => false,
        'ConvertLevel3Properties' => false,
        'Variables' => true,
        'RemoveLastDelarationSemiColon' => true
    ],
    'plugins' => [
        'Variables' => true,
        'ConvertFontWeight' => true,
        'ConvertHslColors' => true,
        'ConvertRgbColors' => true,
        'ConvertNamedColors' => true,
        'CompressColorValues' => true,
        'CompressExpressionValues' => true,
    ]
]
  • #CLI
'js' => [
    'class' => 'compressor\minifiers\CliJsMinifier',
    // default settings, you can override them
    'command' => 'java -jar ' . Yii::getAlias('@vendor/packagist/closurecompiler-bin/bin/compiler.jar') . ' --js {from}',
],
'css' => [
    'class' => 'compressor\minifiers\CliCssMinifier',
    // default settings, you can override them
    'command' => 'java -jar ' . Yii::getAlias('@vendor/packagist/yuicompressor-bin/bin/yuicompressor.jar') . ' --type css {from}',
]

###在Nginx中用 *.js.gz 和 *.css.gz 文件代替 *.js 或 *.css 文件提供服务

gzip_static on | off | always

Nginx gzip 静态模块

例如项目