Установка:Grunt + Concat + Angularjs
Gruntfile
со следующей задачей:Concat: { сборки: { файлов: { 'строить/app.js': [ 'SRC/.js', 'SRC// .js', '! SRC/поставщики/' ], }}
Много угловых модулей, со своими контроллерами, услуг и так далее, со структурой, как это:
A/ a.js // Модуль декларации, как: angular.module ('a', []) a-controller.ks // Что устанавливает контроллер в определении его корневого модуля, например: angular.module ('a'). controller() ...
Номер редакции:
Задача объединяющее все JS файлы, которые он находит в папке build
к одному app.js
файл, и он делает это отлично, но путает с порядком файлов при конкатенации.
Например, он присоединяет первый файл контроллера вместо основного файла папки, содержащей декларацию модуля, вызвав следующую ошибку:
Module xxxx not available!
Я полагаю, что проблема лежит в том, как concat
создает файлы и это делается ядром grunt и, в частности, библиотекой minimatch
, а также возможностью, что она обрабатывает тире в первую очередь, чем буквы, но я не знаю, как настроить изменение этого поведения и даже знать, возможно ли это.
Вопрос:
Итак, вопрос: Как я могу сделать Grunt/Grunt-CONCAT к процессу пунктирной й первым, чем другие в той же папке, поэтому порядок поддерживается?
Благодаря
Update 1:
Порывшись еще, кажется, что это не имеет ничего общего с упорядочением внутри папки, но Grunt/Ядро посылает корневые файлы до конца и положить сначала они листовые.
Спасибо за ваш ответ. Пожалуйста, примите во внимание, что это почти ~ 300 файлов, поэтому указать их один за другим будет громоздким, что сделает мой Gruntfile неуправляемым. Можете ли вы предоставить другое решение этой проблемы? Спасибо – diosney
Ну, вы можете сделать точно так, как указано в ответе, вы бы перенесли первый файл с объявлениями вашего модуля (например, lib/before.js) в качестве первого параметра, тогда * позаботится о ваших 299 других файлах (lib/*). Имеет ли это смысл? Может, я не понял ваш вопрос. Вы должны указать что-то. вы не можете сделать заказ, не сообщая ему, в каком порядке. Или, альтернативно, напишите его в псевдокоде/английском, и мы постараемся понять, что вы думаете, что он должен делать. – redfox05