2015-10-19 4 views
1

Я использую Grunt concat в моем проекте. Я хочу объединить файлы на уровне папок. E.G.Grunt Concat много файлов во многих папках при сохранении структуры папок

js > 
    parent > 
    child1 > 
     a.js 
     b.js 
     c.js 
    child2 > 
     a.js 
     b.js 

в:

js > 
    parent > 
    child1 > 
     child1combined.js 
    child2 > 
     child2combined.js 

есть способ сделать это без специфического добавления каждого «ребенка» в своей собственной Concat линии?

ответ

0

Используйте globbing patterns в вашей общей задаче. Цитируют связанную документацию:

Часто бывает нецелесообразно указывать все исходные индивидуально Пути к файлам, так Grunt поддерживает расширение имени файла (также известные как подстановка).

1

Я закончил работу следующим образом: this post.

grunt.registerTask("taskName", "Task Description", function() { 

      // get all module directories 
      grunt.file.expand("src/js/parent/*").forEach(function (dir) { 

       // get the module name from the directory name 
       var dirName = dir.substr(dir.lastIndexOf('/')+1); 

       // get the current concat object from initConfig 
       var concat = grunt.config.get('concat') || {}; 

       // create a subtask for each module, find all src files 
       // and combine into a single js file per module 
       concat[dirName] = { 
        src: [dir + '/**/*.js'], 
        dest: 'build/js/parent/' + dirName + '/combined.js' 
       }; 

       // add module subtasks to the concat task in initConfig 
       grunt.config.set('concat', concat); 
      }); 
     }); 

Затем просто вызовите taskName из вашего регистра.

 Смежные вопросы

  • Нет связанных вопросов^_^