elephfront/robo-sass

Robo 任务用于将 SASS 文件编译成 CSS 文件。

安装: 40

依赖项: 1

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:robo-tasks

1.0.2 2017-08-08 11:31 UTC

This package is not auto-updated.

Last update: 2024-09-15 04:13:03 UTC


README

Software License Build Status Codecov

Robo 任务执行 SASS 文件的编译。

此任务使用 absalomedia/sassphp PHP 扩展进行编译。

要求

安装

您可以使用 composer 安装此 Robo 任务。

安装 composer 包的推荐方法是

composer require elephfront/robo-sass

安装扩展

要安装扩展,您需要按照以下步骤操作

git clone git://github.com/absalomedia/sassphp`
cd sassphp
git submodule init
git submodule update
php install.php
make test
make install

一旦扩展已安装,您需要更新您的 php.ini 文件(或添加一个新配置文件,让 php.ini 去寻找以加载额外的配置设置)文件,通过添加以下行来在您的 PHP 设置中安装扩展

extension=sass.so

使用任务

您可以使用 LoadSassTaskTrait trait 在您的 RoboFile 中加载任务

use Elephfront\RoboSass\Task\Loader\LoadSassTaskTrait;

class RoboFile extends Tasks
{

    use LoadSassTaskTrait;
    
    public function compileSass()
    {
        $this
            ->taskSass([
                'assets/scss/main.scss' => 'assets/min/css/main.min.css',
                'assets/scss/home.scss' => 'assets/min/css/home.min.css',
            ])
            ->run();
    }
}

taskSass() 方法仅接受一个数组($destinationsMap),该数组将源文件映射到目标文件:它将加载 assets/scss/main.scss,执行其魔法,并将最终内容放入 assets/min/css/main.min.css,并为所有其他文件执行相同的操作。

链式状态支持

Robo 包含一个称为 链式状态 的概念,它允许需要协同工作的任务按顺序执行,并将任务执行的进度状态传递给下一个任务。例如,如果您正在管理资产文件,您将有一个将 SCSS 编译为 CSS 的任务,然后是另一个压缩结果的任务。第一个任务可以将其工作的状态传递给下一个任务,而无需分别调用两个方法。

robo-sass 任务与此功能兼容。

您只需使用 Robo\Result::success()Robo\Result::error() 调用的 data 参数使前一个任务返回 robo-sass 任务应操作的内容。传递的 data 应具有以下格式

$data = [
    'path/to/source/file' => [
        'css' => '// Some (S)CSS code',
        'destination' => 'path/to/destination/file
    ]
];

反过来,当 robo-sass 任务完成后,它将以相同的格式将工作的结果传递给下一个任务。

防止结果写入

默认情况下,robo-sass 任务将工作的结果写入 $destinationsMap 参数中传递的目标文件。如果 robo-sass 任务不是序列中的最后一个任务,您可以使用 disableWriteFile() 方法禁用文件写入。文件将被处理,但结果不会持久化,只传递给响应。

$this
    ->taskCssMinify([
        'assets/scss/main.css' => 'assets/min/css/main.min.css',
        'assets/scss/home.css' => 'assets/min/css/home.min.css',
    ])
        ->disableWriteFile()
    ->someOtherTask()
    ->run();

贡献

如果您发现错误或想提出功能请求,请使用 GitHub 问题跟踪器。如果您想提交修复或功能,请分支存储库并 提交拉取请求

编码标准

此存储库遵循 PSR-2 标准。

许可证

版权(c)2017,Yves Piquel,许可协议为 MIT 许可证。请参阅 LICENSE.txt 文件。