2016-06-09 4 views
0

Я создаю проект с AngularJS, и я надеюсь использовать Grunt и grunt-contrib-concat (или что-то подобное), чтобы получить все мои угловые компоненты, объединенные в один файл.Как использовать конкатенацию/углификацию с помощью AngularJS без специальной настройки каждого файла в порядке

Компоненты AngularJS необходимо конкатенировать в порядке, чтобы файлы с объявлениями модулей предшествовали файлам, которые ссылаются на эти модули.

Похоже, что если вы укажете каждый отдельный файл в задаче Grunt, он использует порядок, в котором они указаны. Тем не менее, я надеялся найти решение, позволяющее мне настраивать правила, по которым упорядочено все дерево каталогов файлов, поэтому мне не нужно указывать отдельные файлы.

В идеале, я бы хотел, чтобы программа проходила через дерево файлов и сначала загружала файлы в дерево. Тогда я мог бы использовать структуру, как:

moduleFolder 
    -> controllerFolder 
     -> example.ctrl.js 
     -> exampleAlternate.ctrl.js 
    -> directiveFolder 
     -> example.directive.js 
    -> exampleModuleDeclaration.js 

Может кто-нибудь подскажет, как это может быть сделано, или то, что принятый способ делать AngularJS с конкатенация?

ответ

1

'use strict';

module.exports = функция (пехотинец) {

grunt.initConfig({ 
    distFolder: '../scripts', 
    pkg: grunt.file.readJSON('package.json'), 
    concat: { 
     options: { 
      separator: ';' 
     }, 
     scripts: { 
      src: [ 
       '../app.js', 
       '../controllers/*.js', 
       '../controllers/*/*.js', 
       '../services/*.js', 
       '../directives/*.js', 
       '../filters/*.js', 
       '../factories/*.js' 
      ], 
      dest: '<%= distFolder %>/file_name.js' 
     } 
    } 
}); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.registerTask('default', ['concat']); 

};

попробуйте это и имейте в виду структуру папок. его сохранение в папку сценариев

+0

Oh. Думаю, это сработает. Я попробую скоро и вернусь к вам. –

+0

Я пошел с решением соглашения об именах, вместо структуры папок, но принцип тот же. Спасибо. –