mhaendler/tp-minify

Laminas 模块,使用 Steve (mrclay) Clay 的 Minify 库进行样式和脚本混淆

1.5.0 2020-04-22 09:14 UTC

This package is auto-updated.

Last update: 2024-09-29 05:48:55 UTC


README

此模块使用 Steve (mrclay) Clay 的 Minify 库进行样式和脚本混淆。

安装

Composer

  • 安装 Composer
  • "mhaendler/tp-minify": "dev-master" 添加到 composer.json 文件的 require 部分
  • 执行 composer update
  • 'modules' => array('TpMinify', ...) 添加到您项目的 application.config.php 文件。 重要的是要将 "TpMinify" 放在其他模块之前。
  • 打开(仅为例子)的 Frontend/config/module.config.php 并添加此配置占位符
'TpMinify' => array(
    'serveOptions' => array(
        'minApp' => array(
            'groups' => array(
                'css' => array(
                    '//../module/Frontend/public/css/buttons.css',
                    '//../module/Frontend/public/css/forms.css'
                ),
                'js' => array(
                    '//js/common.js'
                )
            )
        )
    )
)
  • 将样式放入 Head 部分
$this->headLink()->prependStylesheet($this->basePath('/min?g=css'))
$this->headScript()->prependFile($this->basePath('/min?g=js'))
// or
$this->headLink()->prependStylesheet($this->basePath('/min?f=example.css'))

选项

带有变量描述的源代码。例如

// $min_cacheFileLocking
'TpMinify' => array('cacheFileLocking' => ...);
// $min_serveOptions['bubbleCssImports']
'TpMinify' => array('serveOptions' => array('bubbleCssImports' => ...));
// etc.

如何操作

如何处理 /module/YourModule/public/images/ 文件夹?

a. 创建到该模块的符号链接(/public/images/modules/YourModule)并启用 手动重写

'TpMinify' => array(
    'serveOptions' => array(
        'rewriteCssUris' => false,
        'minifierOptions' => array(
            'text/css' => array('prependRelativePath' => '/images/modules/YourModule/')
        )
    )
)

b. 如果需要,添加 symlinks 选项,该选项在 配置文件此处 中描述。

'minifierOptions' => array(
    'text/css' => array(
        'symlinks' => array(
            '//fonts' => Module::DIR . '/public/fonts'
        )
    )
)
是否可以压缩内联脚本?

启用 HeadScript 视图助手

'TpMinify' => array(
    'helpers' => array(
        'headScript' => array(
            'enabled' => true,
            'options' => array() // serveOptions here if needed
        )
    )
)
// and use it in your templates
<?$this->headScript()->captureStart()?>
$(function() {
    console.log('hello');
});
<?$this->headScript()->captureEnd()?>
我有两个或更多模块,如何处理?
  1. 将公共内容放入 global.php
  2. 并将模块依赖内容放入每个模块的 module.config.php
  3. 使用前缀分组:例如 backend-cssfrontend-css 等。

许可证

MIT 许可证 (MIT)

版权所有 (c) 2013-2014 Kanstantsin Kamkou

特此免费授予任何获得此软件及其相关文档副本(以下简称“软件”)的人士,无限制地使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许软件的接收者为此目的而进行操作,但受以下条件的约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不包括任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,与软件或其使用或其他交易有关。