Laravel 4,Basset,Less - preg_match编译失败

时间:2013-08-20 04:14:29

标签: php node.js laravel less laravel-4

背景:我使用的是Ubuntu 12.04,PHP 5.5.1-2和Laravel 4。

当我跑步时:

php artisan basset:build

我收到错误

{"error":{"type":"ErrorException","message":"preg_match(): 
Compilation failed: nothing to repeat at offset 0",
"file":"\/home\/ryan\/MyApp6\/vendor\/jasonlewis\/basset\
/src\/Basset\/Filter\/Filter.php","line":241}}

我的问题与此类似:How to make less to work with basset in laravel 4?

但是,我已经尝试了LessphpFilter,并且我已经安装了node.js ...我可以手动编译带节点的样式表,但是对于我来说都不能通过basset工作。

例如,给出mytest.less:

@color:blue;
body{
    background-color: red;
    color:@color;
}

MyApp的/应用/配置/包/ jasonlewis /巴塞特/ config.php中

'collections' => array(

    'mytest-css' => function($collection)
    {

        $collection->directory('assets/bs3/css', function($collection)
        {
            $collection->add('../less/mytest.less')->apply('Less');            
        })->apply('UriRewriteFilter')->setArguments(public_path());
    },
...

当我在浏览器中拉出页面时,背景为红色,但文本仍为黑色。在Chrome devtools中,我可以看到已编译的css文件,但内容仍然是:

@color:blue;

body{
    background-color: red;
    color:@color;
}

我做错了什么?即使是关于如何跟踪此问题的暗示也将不胜感激 - 谢谢!

1 个答案:

答案 0 :(得分:0)

LessphpFilter是我需要的,在app / config / packages / jasonlewis / basset / config.php中

我还需要添加一个前导斜杠,如下所示:

'Less' => array('LessphpFilter', function($filter)
{
    $filter->whenAssetIs('/*.less')->findMissingConstructorArgs();
}),

我希望能帮到别人。