wouterj/fred

一个非常简单的基于迭代任务的执行器

0.3.0 2015-01-30 17:00 UTC

This package is auto-updated.

Last update: 2024-08-25 01:27:58 UTC


README

欢迎使用Fred。Fred将执行您在fred文件中描述的任务。

Fred目前还不是一名成熟的男子。此文档中使用的步骤尚未实现。您能帮我教他如何执行开发者任务吗?

Build Status

为什么我应该使用Fred?

  • 您无需在服务器上安装NodeJS、NPM来运行任务;
  • 您可以使用您熟悉的语法;
  • Fred的代码库非常小(仅有9个类)并且非常灵活,就像任务执行器一样。

安装

安装Fred的最佳方式是使用Composer

$ composer global require wouterj/fred:0.*

如果您正确设置了Composer的全局二进制目录,这将为您提供一个新命令:fred

使用方法

您首先创建一个fred.php文件(fred文件)。在这个文件中,您指定任务。您通过调用文件中可用的$fred变量的task()方法来完成此操作

$fred->task('build', function () use ($fred) {
    // ... specify the tasks
});

所有任务都从打开一个文件或多个文件开始,并将这些文件的Traversable传递给load()方法。这样做最好的方式是使用Symfony Finder Component

use Symfony\Component\Finder\Finder;

$fred->task('build', function () use ($fred) {
    $fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw'));
});

现在您已经为所有.js扩展名的文件在/web/assets/raw中打开了一个Fred步骤序列。

现在您可以为此序列分配尽可能多的步骤

use Symfony\Component\Finder\Finder;
use WouterJ\Fred\Extension as Ext;

$fred->task('build', function () use ($fred) {
    $fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw'))
        ->then(new Ext\JsHint())   // Lint the JS code using JsHint...
        ->then(new Ext\Uglify())   // ...minify the JS files using UglifyJS...
        ->then(new Ext\Compact())  // ...and combine all JS files into one file
    ;
});

最后,您必须将生成的代码输出到某个地方。这可以通过dist()函数来完成

$fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw'))
    ->then(new Ext\JsHint())
    ->then(new Ext\Uglify())
    ->then(new Ext\Compact())
    ->dist('/web/assets/script.min.js')
;

现在,生成的代码已输出到/web/assets/script.min.js文件中。

您可以通过使用fred build(其中build是任务的名称)来运行此任务。

许可证

该项目是在BSD许可证下发布的。有关更多信息,请参阅此包中包含的LICENSE文件。

路线图

当然,所有类型的更改都受到欢迎(只要它不会使Fred更加复杂),但Fred在达到稳定版本之前应该学会以下内容

  • 有更多的测试(实际测试控制台应用程序)
  • 有完整的文档
  • 有更多的扩展和步骤