4

対応する.lessファイルから.css部分ファイルを生成したい

npm、grunt @ 0.4.0、grunt-contrib-less@0.5.0から入手できる最新バージョンを使用しています

Gruntバージョン0.4より前は、パターンを簡単に指定できました。

htdocs/less/*.lessソースとして

htdocs/css/*.css目的地として

フォルダのすべてのファイルがフォルダhtdocs/lessに生成されますhtdocs/css

v0.4以降、宛先パターンは機能しなくなったため、フォルダー内のすべてのファイルhtdocs/lessが連結されて、という名前の1つのファイルになります。*.css

すべてのファイルを1つのファイルに連結するのではなく、すべてのファイルを生成するようにタスクを構成するにはどうすればよいですか。

ファイルを個別にリストしたくありません。

Gruntのドキュメントで答えが見つかりませんでしたhttp://gruntjs.com/configuring-tasks#filesdoes

ありがとうございました。

私のGruntfile.js(抜粋):

module.exports = function (grunt) {
    grunt.initConfig({
        less: {
            development: {
                files: {
                    "htdocs/css/*.css": "htdocs/less/*.less"
                }
            }
        },
    });
};
4

2 に答える 2

14

ドキュメントの「ファイルオブジェクトを動的に構築する」セクションをお読みください。

これは、現在の構成からの直接変換になります。

module.exports = function (grunt) {
    grunt.initConfig({
        less: {
            development: {
                files: [{
                    expand: true,        // Enable dynamic expansion.
                    cwd: 'htdocs/less',  // Src matches are relative to this path.
                    src: ['*.less'],     // Actual pattern(s) to match.
                    dest: 'htdocs/css',  // Destination path prefix.
                    ext: '.css',         // Dest filepaths will have this extension.
                }]
            }
        },
    });
};
于 2013-03-12T20:27:15.583 に答える
0

アセンブルレスもご覧ください。それはうなり声のないものに基づいていますが、あなたがやろうとしていることに特に向けられています。(完全な開示、私はプロジェクトのメンテナーでもあります)。

この特定のユースケースでは、アセンブルレスがgrunt-contrib-lessよりも優れている点はconcat: false、Gruntの任意のsrc-destパターンを使用してLESSファイルを個別にコンパイルできるオプションがあることです。assemble-lessには、require指定された他のすべてのlessファイルに「グローバル」lessファイル(variables.lessやmixins.lessなど)を自動的に追加するオプションもあり、@import各lessファイル内にステートメントを実際に追加する必要がありません。

したがって、たとえば、アセンブルなしでは、次のようになります。

  less: {
    development: {
      options: {
        concat: false
      }
      files: {
        "htdocs/css/": "htdocs/less/*.less"
      }
    }
  }
于 2013-03-17T17:59:17.060 に答える