4

バセットで少ないコンパイルを有効にする方法は? 私のバセット構成ファイルのコレクション:

'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

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 に答える