Войти с помощью github
Форум /

Всем привет. Посмотрел я вебинар 2х годичной давности https://www.youtube.com/watch?v=1GWoMnYldYc про БЭМ. Сильно заинтересовался я этой методологией. Решил сделать тестовый проект на полном бем стеке. Склонировал себе project-stub и начал делать, все замечательно не без подводных камней конечно но закончил я верстку. И пришло время собирать все в production, и вот тут то и засада. В том вебинаре был специальный таск для enb который собирал все основные файлы в отдельную папку, собирал туда все картинки и что самое главное переписывал все пути к картинкам относительно их нового расположения и нового имени. Я создал конфиг файл для борьщика, он мне все картинки собрал то, попробовал скопировать таск с этого вебинара и вставить к себе, но понятное дело это просто так не работает. Вот сам таск:

var fse = require('fs-extra'),
    path = require('path'),
    glob = require('glob'),

rootDir = path.join(__dirname, '..');

config.task('dist', function (task) {

    // build targets and copy it to 'dist' folder
    function copyTargets(buildInfo) {
        buildInfo.builtTargets.forEach(function (target) {
                var src = path.join(rootDir, target),
                    dst = path.join(rootDir, 'dist', path.basename(target));

                fse.copySync(src, dst);
            });
    }

    return task.buildTargets(glob.sync('*.bundles/*'))
        .then(function (buildInfo) {
            copyTargets(buildInfo);
            task.log('Dist was created.');
        });
});

В package.json добавил строку в скрипты
"dist": "YENV=production enb make dist -n"
но если из консоли запускать
npm run dist
то выдает ошибку
"Exit status 1 Failed at the bem-project-stub@2.0.0 dist script 'YENV=production enb make dist -n'."
. Если запустить так
./node_modules/.bin/enb make dist
То выдает такую вот ошибку
Target not found: desktop.bundles/index
Хотя эта папка есть. Я решил что оно ищет эту папку, как не странно, в корне диска. Дописал вот так
'./' + glob.sync('.bundles/')
Начало выдавать такую вот ошибку
targets.forEach is not a function
Как я понял, просто функция buildTargets ожидает на вход параметр object а я его преобразовываю в string. Но тогда нужно вернуться на предыдущий шаг и понять почему выдает что "desktop.bundles/index" не существует.

Вообще вопрос заключается в том, как вы передаете ту же верстку по БЭМ с использование project-stub в production. Повторюсь, самая большая проблема как по мне, это пути к картинкам, фиг с ним, файлы то можно и руками собрать, их там все по 3 на каждую страницу, но вот как быть с путями для меня вопрос. Может кто поможет настроить сборщик корректно?