4

如何使用 basset 启用 Less 编译?我的 basset 配置文件集合:

'collections' => array(

    'application' => function($collection)
    {
        $collection->apply('UriRewriteFilter');

        $directory = $collection->directory('../app/assets/stylesheets', function($collection)
        {
            $collection->add('less/design.less')->apply('Less');
        });
        $directory->apply('CssMin');
    }
);

配置中的其他所有内容都保持不变。

在源代码中我得到这个:
<link rel="stylesheet" type="text/css" href="http://localhost/Job/public/ph7mOzIaRTYLhvwL/application/6f5128120be8f13c4a2109051990f113/design.css" />

甚至认为它是 .css 但它没有编译到其中。

更少的过滤器

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

我正在使用窗户。

4

2 回答 2

4

除了使用 node.js 构建器,您还可以使用 php less 构建器:

将以下要求添加到您的 composer.json:

“要求”: {
    “叶子/lessphp”:“*”
}
作曲家更新

将 basset 配置文件中的 Less 过滤器别名更改为:

'Less' => 数组('LessphpFilter',函数($filter)
于 2013-06-04T10:29:14.077 回答
2

我刚刚遇到了这个问题,并且试图解决它有点疯狂。我正在使用 Mac OS X,但这可能是同一个问题 - 即。看起来它已经编译了,我得到的长 CSS 文件名和你一样,但是 LESS 没有编译。

我在 Basset 的错误日志中看到以下内容:

[2013-06-03 20:13:13] basset.ERROR: Failed to find required 
constructor argument for filter "LessFilter". 
(Parameter #0 [ <optional> $nodeBin = '/usr/bin/node' ])

所以我意识到 LESS 过滤器正在寻找 Node.js 来进行实际编译。我没有安装 Node.js ......所以我安装了它,然后php artisan basset:build application再次运行。

有效。

那么你安装了 Node.js 了吗?如果没有,我认为你需要这样做。然后你需要安装实际的模块,例如npm install less从命令行运行时会安装 LESS。

完成此操作后,Windows 在告知可执行文件的路径(即 LESS 编译器)方面会有点棘手,因此您可能需要自己输入一些路径。这里有更多信息:http: //jasonlewis.me/code/basset/4.0/filters#filter-executables在“Windows 兼容性”部分下。

希望有帮助。

于 2013-06-03T21:18:35.750 回答