横向 / silverstripe-lesscompiler
一个简单的less编译器,可在Silverstripe执行时运行
Requires
- oyejorge/less.php: 1.*
- silverstripe/framework: >=3.1
This package is auto-updated.
Last update: 2024-09-21 01:17:00 UTC
README
一个模块,在执行时编译定义的less文件,并将它们导出为定义的CSS文件。
目前这是一个概念验证,有很多可能的扩展选项。
此模块使用"less.php"模块来编译less文件。如果您不是通过Composer安装,则需要将其安装到您的路径中。
通过Composer安装
composer require i-lateral/silverstripe-lesscompiler 0.*
操作
此模块在控制器初始化之前检查定义的less文件的更新。如果有更改,则新的CSS将被编译并保存到定义的输出路径。
此过程仅在开发环境中运行(以避免对实时站点的性能产生不利影响),所有缓存文件都存储在默认的Silverstripe临时目录中。
基本用法
首先,在LessCompilerConfig上设置file_mappings配置变量。这应该是一个要转换的less文件及其等效导出文件的列表,例如
config.yml
LessCompilerConfig:
file_mappings:
"styles.less": "styles.css"
"typography.less": "typography.css"
_config.php
LessCompilerConfig::config()->file_mappings = array(
"styles.less" => "styles.css",
"typography.less" => "typography.css"
);
如果您未包含less/css文件的路径,则模块假设您正在使用默认主题目录,并分别使用名为"less"和"css"的文件夹。
自定义文件路径
您可以使用以下方式定义自定义的less和css文件路径
config.yml LessCompilerConfig: file_mappings: "themes/themename/less/styles.less": "themes/themename/css/styles.css" "themes/themename/less/typography.less": "themes/themename/css/typography.css"
_config.php
LessCompilerConfig::config()->file_mappings = array(
"themes/themename/less/styles.less" => "themes/themename/css/styles.css",
"themes/themename/less/typography.less" => "themes/themename/css/typography.css"
);
压缩输出
默认情况下,所有输出都是压缩的,您可以使用"compress"配置变量来禁用此功能,例如
config.yml
LessCompilerConfig:
compress: false
_config.php
LessCompilerConfig::config()->compress = false;
相对图像URL
编译器尝试将所有相对图像URL转换为以../前缀,这假设输出CSS将在与图像分开的文件夹中,但具有共同的根。您可以使用"root_path"配置变量来更改此设置
config.yml
LessCompilerConfig:
root_path: "../../imports"
_config.php
LessCompilerConfig::config()->root_path = "../../imports";
编译前后的扩展
如果您需要在Less Compiler运行前后执行自定义函数,可以使用onBeforeLessCompiler
和onAfterLessCompiler
扩展调用。
注意 这些调用被添加到控制器中,因此您不需要将扩展添加到LessCompiler本身,只需将您的自定义代码添加到控制器的扩展中即可。例如
app/code/extensions/AppControllerExtension.php
<?php
class AppControllerExtension extends Extension
{
public function onBeforeLessCompiler()
{
// pre compiler code goes here
}
public function onAfterLessCompiler()
{
// post compiler code goes here
}
}
app/_config/config.yml
---
Name: app
After: 'framework/*','cms/*'
---
# YAML configuration for SilverStripe
# See http://doc.silverstripe.org/framework/en/topics/configuration
# Caution: Indentation through two spaces, not tabs
SSViewer:
theme: 'simple'
# Extensions
Controller:
extensions:
- AppControllerExtension