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 個の監視タスクを用意する以外に選択肢はないのでしょうか?
ありがとう。