次のように機能する grunt.task.run() に文字列のみを渡すと、問題が発生します
grunt.registerTask('buildAll', function() {
['url-1', 'url-2'].forEach(function(config) {
grunt.task.run('updateConfig:'+ config, 'requirejs');
});
});
grunt.registerTask('updateConfig', function(config) {
// console.log(config);
grunt.config('requirejs.compile.options.baseUrl', config);
// console.log(grunt.config('requirejs.compile.options'));
});
しかし、 {name:'a', baseUrl: 'path2'} のようなオブジェクトを渡すと、次のようにコードが未定義になります:
grunt.registerTask('buildAll', function() {
[{name:'main-1', baseUrl:'./path1/'}, {name:'main-2', baseUrl:'./path2/'}].forEach(function(config) {
grunt.task.run('updateConfig:'+ config, 'requirejs');
});
});
grunt.registerTask('updateConfig', function(config) {
// console.log(config);
grunt.config('requirejs.compile.options.baseUrl', config.baseUrl);
grunt.config('requirejs.compile.options.name', config.name);
// console.log(grunt.config('requirejs.compile.options'));
});
それに対する任意の解決策。プロジェクトの複数の requirejs メインをビルドする必要がありますが、構成が大きく異なりますか?