Closed arikon closed 11 years ago
Should take js-bemhtml
tech from realty
project as a prototype
js-bemhtml
tech from realty
project
var BEM = require('bem'),
PATH = require('path'),
INHERIT = BEM.require('inherit'),
Q = BEM.require('qq'),
JS = BEM.require('bem/lib/techs/js').Tech;
exports.Tech = INHERIT(JS, {
getSuffixes: function() {
return ['js'];
},
getBuildResult: function(prefixes, suffix, outputDir, outputName) {
var context = this.context,
opts = context.opts;
console.log('context.techs', context.createTech('bemhtml') );
return this.__base(prefixes, suffix, outputDir, outputName).then(function(res) {
var decl = opts.declaration.then(function(decl) { return { deps: decl.depsByTechs.js.bemhtml } });
var bemhtmlTech = context.createTech('bemhtml'),
output = PATH.resolve(opts.outputDir, opts.outputName),
bemhtmlResults = bemhtmlTech.getBuildResults(
bemhtmlTech.getBuildPrefixes(bemhtmlTech.transformBuildDecl(decl), context.getLevels()),
PATH.dirname(output) + PATH.dirSep,
PATH.basename(output));
bemhtmlResults.then(function(r) { console.log('bemhtmlResults %j', r) });
res.unshift('/* BEMHTML */\n');
return res;
});
}
});
We need tech module to build
.js
files for bundles that include bemhtml templates to render html from bemjson in the browser.To build such a file we need to build
js
part using common deps, buildbemhtml.js
part usingtechByDeps.js.bemhtml
parf of deps and concatenate the result.