bem / project-stub

deps
313 stars 198 forks source link

Borschik не фризит в html. #288

Closed wannabenormal closed 5 years ago

wannabenormal commented 5 years ago

Настроил файл .borschik

{
    "paths": {
           "./public/images": "../images/"
    },    
    "freeze_paths" : {
       "node_modules/**": "./public/images/",
       "*.blocks/**": "./public/images/",
       "i/**": "./public/images/",
       "*.blocks/**": ":base64:",
        "*.blocks/**/*.svg": ":encodeURIComponent:"
    }
}

Прописал в make.js [techs.borschik, { source: '?.html', target: '?.borschik.html', freeze: true }], В css все пути подставляются и инлайнятся, а вот в html напрочь игнорируются, уже не знаю куда копать.

tadatuta commented 5 years ago

Скорее всего проблема в путях. Пусть до исходника должен быть относительным бандла.

Вот пример на всякий случай: https://github.com/bem/project-stub/commit/bdcf52d8a652e2ba904a0a8d6c26b4d79df80c7f

wannabenormal commented 5 years ago

К сожалению, ничего не изменилось. Пример из bemjson:

elem: 'sq',
content: {
    block: 'image',
    url: '../i/sq-2.svg'
}

Пример make.js:

module.exports = function(config) {
    const isProd = process.env.YENV === 'production';

    config.nodes('*.bundles/*', function(nodeConfig) {
        nodeConfig.addTechs([
            // essential
            [enbBemTechs.levels, { levels: levels }],
            [techs.fileProvider, { target: '?.bemjson.js' }],
            [enbBemTechs.bemjsonToBemdecl, { source: '?.bemjson.js' }],
            [enbBemTechs.deps],
            [enbBemTechs.files],
            [techs.stylus],

            // css

            // bemtree
            // [techs.bemtree, { sourceSuffixes: ['bemtree', 'bemtree.js'] }],

            // bemhtml
            [techs.bemhtml, {
                sourceSuffixes: ['bemhtml', 'bemhtml.js'],
                forceBaseTemplates: true,
                engineOptions : { elemJsInstances : true }
            }],

            // html
            [techs.bemjsonToHtml, {
                target: '?.pre.html'
            }],

            // client bemhtml
            [enbBemTechs.depsByTechToBemdecl, {
                target: '?.bemhtml.bemdecl.js',
                sourceTech: 'js',
                destTech: 'bemhtml'
            }],
            [enbBemTechs.deps, {
                target: '?.bemhtml.deps.js',
                bemdeclFile: '?.bemhtml.bemdecl.js'
            }],
            [enbBemTechs.files, {
                depsFile: '?.bemhtml.deps.js',
                filesTarget: '?.bemhtml.files',
                dirsTarget: '?.bemhtml.dirs'
            }],
            [techs.bemhtml, {
                target: '?.browser.bemhtml.js',
                filesTarget: '?.bemhtml.files',
                sourceSuffixes: ['bemhtml', 'bemhtml.js'],
                engineOptions : { elemJsInstances : true }
            }],

            // js
            [techs.browserJs, { includeYM: true }],
            [techs.fileMerge, {
                target: '?.js',
                sources: ['?.browser.js', '?.browser.bemhtml.js']
            }],

            // borschik
            [techs.borschik, { source: '?.pre.html', target: '?.html', freeze: true }],
            [techs.borschik, { source: '?.js', target: '?.min.js', minify: isProd }],
            [techs.borschik, { source: '?.css', target: '?.min.css', minify: isProd }],
            [techs.fileCopy, { source: '?.min.js', target: '../../public/js/?.min.js' }],
            [techs.fileCopy, { source: '?.min.css', target: '../../public/css/?.min.css'}],
            [techs.fileCopy, { source: '?.html', target: '../../public/?.html' }]

        ]);

        nodeConfig.addTargets([/* '?.bemtree.js', */ '?.bemjson.js', '?.html', '?.bemhtml.js', '?.min.css', '?.min.js', '../../public/js/?.min.js', '../../public/css/?.min.css', '../../public/?.html']);
        nodeConfig.addTarget('?.css');
    });
};
tadatuta commented 5 years ago

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