Как соединить файлы JS из заданной папки в 1 файл, используя GRUNT.
Пробовал:
Подскажите модуль, который бы считывал из файла порядок следования объединяемых файлов и объединял их (если же вообще такой существует).
Нашел решение (спасибо моему коллеге Дмитрию за ссылку).
Значит структура файлов следующая: есть папка concat, в которой grunt берет папки-источники, по отдельности их собирает и кладет в заданное место. Так как модулей (директории в concat) может быть много и каждый раз прописывать в Gruntfile.js - это не очень замечательно, создается следующая задача:
grunt.registerTask("prepareConcat", "Finds and prepares modules for concatenation.", function() {
// get all module directories
grunt.file.expand("sys/src/js_concat/*").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: 'sys/src/js/' + dirName + '/' + dirName + '.js'
};
// add module subtasks to the concat task in initConfig
grunt.config.set('concat', concat);
});
});
И все, осталось добавить задачу для слежения и дефолтного исполнения:
watch: {
***
scripts: {
files: 'sys/src/js_concat/**/*.js',
tasks: ['prepareConcat','concat']
}
}
и
grunt.registerTask('default', ['prepareConcat','concat', 'jshint', 'uglify', 'less']);
Ссылка на ответ-источник: https://stackoverflow.com/questions/21918202/using-grunt-to-concat-many-files-from-many-dirs-into-single-renamed-file-in-new?answertab=active#tab-top
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно, чтобы по клику на кнопку запускалась функция, которая увеличивает каждый блок(первый через 500мс, второй через секунду и тд
Как в handlebarsjs зарегистрировать helper type object, чтобы его можно было использовать в шаблоне как {{ testfirst }} и {{ test
нужно последовательно запустить два request запроса(модуль в javascript), условия не асинхронно
Скрипт, чтоб при открытии одного попапа, другой попап закрывался (если он на тот момент открыт)Спасибо