プロジェクトの 1 つで GruntJS を使い始めています。簡単なエイリアスを使用して、簡単なビルド スクリプトを簡単に作成できました。
ただし、私のスクリプトには基本的に同じ多くのタスクが含まれています。唯一の違いは、ソース フォルダーと宛先フォルダーなどのいくつかのパラメーターです。
例えば:
sass: {
options:{
trace: true,
debugInfo: true,
style: 'compressed'
},
html: {
files: {
'build/html/css/main.css': 'sass/html.sass'
}
},
html2: {
files: {
'build/html2/css/main.css': 'sass/html2.sass'
}
},
html3: {
files: {
'build/html3/css/main.css': 'sass/html3.sass'
}
}
}
私が達成したいのは、タスクを 1 つだけにして、そのタスクにパラメーター (dest,src) を渡すことです。
MultiTasks を使用してこれを実装しようとしました:
grunt.registerTask('sass2', 'Run all Sass compilation tasks.', function() {
var projects = ['html','html2','html3'];
projects.forEach(function(proj){
grunt.config.set('sass.files.dest', 'build/' + proj + '/css/main.css');
grunt.config.set('sass.files.src', 'sass/' + proj + '.sass');
grunt.log.writeln(grunt.config.get('sass.files.dest'));
grunt.log.writeln(grunt.config.get('sass.files.src'));
grunt.task.run('sass');
});
});
Grunt ログはパラメーターの正しい値を出力しますが、コンパイルされるのは html3 sass のみです。
プロジェクトの 1 つだけがコンパイルされる理由と、これを修正する方法がわかりません。
おそらく、この問題を解決する別の方法があります。より良い方法。たぶんテンプレートを使用していますか?
どんな種類の助けやヒントもいただければ幸いです。
ありがとうございました!