0

Grunt セットアップの微調整で問題が発生しています。現在のプロジェクトのセットアップはこのようなものです。テーマ フォルダーがあります。そのテーマ フォルダーには、独自の SCSS ファイルとそのテーマに関連するその他のビットをすべて保持するさまざまなテーマがあります。

私たちの grunt ファイルは、約 15 のテーマで次のようにセットアップされています (最終的に Grunt が機能するため、デフォルトの Grunt セットアップと JSHint は除外されます)。

compass: {
    options: {
        ...
    }
    theme1: {
        src: ['App/Themes/theme1/scss/**/*.scss'],
        tasks: ['compass'],
        options: {
            sassDir: 'App/Themes/theme1/scss',
            cssDir: 'App/Themes/theme1'
        }
    },
    theme2: {
        src: ['App/Themes/theme2/scss/**/*.scss'],
        tasks: ['compass'],
        options: {
            sassDir: 'App/Themes/theme2/scss',
            cssDir: 'App/Themes/theme2'
        }
    },

    ...
}

concurrent: {
    watch: {
        tasks: ['compass:theme1', 'compass:theme2', ..., 'compass:themeXX'],
        options: {
            logConcurrentOutput: true,
            spawn: false
        }
    }
}

grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-watch');

grunt.registerTask('default', ['concurrent']);

実際の問題は、デフォルト タスクを開始すると、x 個のウォッチ スレッドも開始されることです。彼らがしなければならない小さな監視タスクのために多くのオーバーヘッドがあります。

私が探している解決策は、特定のテーマ コンパス コンパイルをトリガーできる単一の監視タスクをセットアップする方法です。それを行う方法はありますか?それとも、現在のセットアップがそれを行う唯一の方法ですか? では、x 個の監視タスクを用意する以外に選択肢はないのでしょうか?

ありがとう。

4

1 に答える 1