web-dev-qa-db-ja.com

grunt-contrib-lessを使用してより少ないファイルをコンパイルしても機能しません

Webプロジェクトの構築にGruntを使用しています。 _grunt-contrib-less_パッケージをインストールし、grunt.initConfig({..});にタスクを追加しました

_less : {
            options: {
                paths: ['js/base']
            },
            files: {
                'js/base/*.css' : 'js/base/*.less'
            }
        }
_

ターゲットを実行するとless _grunt less_を介して、エラーなしで実行されますが、lessファイルをcssファイルにコンパイルしません。

_Running "less:files" (less) task

Done, without errors.
_

lesscパッケージもノード経由でインストールしました。 _lessc <source> <dest>_を実行すると正常に機能します。

現在、私はfiles optionで、テスト用のファイルが1つ少ない1つのディレクトリを直接指し示しています。ファイル名全体をfiles optionに書き込んでも、何も起こりません...

後で、jsディレクトリ全体をスキャンして、新しく変更された* .lessファイルをすべてコンパイルしたいと思います。

次のバージョンをインストールしました:

_grunt-cli v0.1.6
grunt v0.4.0
node v0.8.7
npm 1.1.49
_

BR、mybecks

14
mybecks

グロブパターンjs/base/*.cssはどのファイルとも一致しないため、宛先はありません。通常、このようなタスクでは、複数の入力が1つの出力に結合されることが期待されます。また、lessマルチタスクであり、fileslessの子として配置しても、期待どおりの動作が行われないことに注意してください。 (これは、src/destマップではなく、ターゲットとして扱われます)

.lessから.cssへの1-1変換が必要な場合は、 動的展開 を使用できます。 (または、各src/destペアを手動で定義できますが、誰がそれを実行したいですか?)

あなたの場合:

less: {
    options: {
        paths: ['js/base']
    },
    // target name
    src: {
        // no need for files, the config below should work
        expand: true,
        cwd:    "js/base",
        src:    "*.less",
        ext:    ".css"
    }
}
45
Dominic Barnes

Anthoniesソリューションを使用しましたが、stilにエラーがありました

Warning: Object true has no method indexOf

expand trueを2番目に入れて順序を変更すると、エラーが発生しました

Unable to read "less" file

ここで、「less」は私のリストの最初の項目の値でした。

私はファイルを次のような配列に変更することでそれを解決しました:

less: {
    options: {

            paths: ["js/base"]
        },
        files: [{
            expand: true,
            cwd: "js/base",
            src: ["**/*.less"],
            dest: "js/base",
            ext: ".css"
        }]
},

"grunt-contrib-less" : "^0.11.0"を使用しました

9
Michiel

これは私にとってはうまくいきますが、このシナリオを反映するように変更されています:

less: {
    options: {
        paths: ["js/base"]
    },
    files: {
        expand: true,
        cwd: "js/base",
        src: ["**/*.less"],
        dest: "js/base",
        ext: ".css"
    }
},
6
Anthony Tambrin