bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Отсутствует код YModules в конечном js файле. #538

Closed YLeight closed 9 years ago

YLeight commented 9 years ago

Господа, прошу руку помощи.

Имеется по минимуму: .bem/make.js

MAKE.decl('Arch', {
    blocksLevelsRegexp: /^.+?\.blocks/,
    bundlesLevelsRegexp: /^.+?\.bundles/,
    getLibraries: function () {
        return {
            'bem-core': {
                type: 'git',
                url: 'git@github.com:bem/bem-core.git',
                treeish: 'v2.6.0'
            }
        };
    }
});

MAKE.decl('BundleNode', {
    getTechs: function () {
        return [
            'bemjson.js',
            'bemdecl.js',
            'deps.js',
            'js',
            'bemhtml.js',
            'css',
            'html'
        ];
    }
});

.bem/level.js

exports.getTechs = function () {
    var techs = {
        'bemjson.js': 'v2',
        'bemdecl.js': 'v2/bemdecl.js',
        'deps.js': 'v2/deps.js',
        'js': 'v2/js',
        'bemhtml.js': '../../bem-core/.bem/techs/bemhtml.js',
        'css': 'v2/css',
        'html': '../../bem-core/.bem/techs/html.js'
    };

    return techs;
};

exports.getConfig = function () {
    return {
        bundleBuildLevels: this.resolvePaths([
            '../../bem-core/common.blocks',
            '../../bem-core/desktop.blocks',
            '../../common.blocks',
            '../../desktop.blocks'
        ])
    };
};

И три дерриктории для уровней common.blocks, desktop.blocks и desktop.bundles c файлами .bem/level.js в каждой (всё стандартно вроде бы =)) common.blocks/.bem/level.js, desktop.blocks/.bem/level.js desktop.bundles/.bem/level.js

exports.baseLevelPath = require.resolve("../../.bem/level.js");

bem make проходит на ура (bem-tools версии 0.10.0)

далее bem server

Иииии - при открытии странички в браузере падает ошибка

Uncaught ReferenceError: modules is not defined

Откуда ноги растут?

Буду очень благодарен за разъеснине либо ссылку.

tadatuta commented 9 years ago

За сборку browser.js с ym и клиентскими шаблонами отвечает технология https://github.com/bem/bem-core/blob/v2/.bem/techs/browser.js%2Bbemhtml.js

Пример использования можно подсмотреть здесь https://github.com/bem/project-stub/blob/96e1520bec0ebb65f507abe7986363d9d9e734c6/.bem/levels/bundles.js#L13

Но в целом я бы порекомендовал мигрировать на сборку с помощью ENB. Пример можно посмотреть здесь: https://github.com/bem/project-stub/blob/bem-core/.enb/make.js (запускать ее можно будет по-прежнему с помощью bem make, нужно только удалить текущий конфиг и создать конфиг в .enb/make.js).

YLeight commented 9 years ago

Планировал переезд на enb да глаза боялись. Всё оказалось не так болезнено!

@tadatuta премного благодарен.