1

次のように機能する 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 メインをビルドする必要がありますが、構成が大きく異なりますか?

4

0 に答える 0