Skip to content

Commit

Permalink
merged
Browse files Browse the repository at this point in the history
  • Loading branch information
tadatuta committed Apr 4, 2015
1 parent 94478e6 commit 7a98ffd
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 5 deletions.
25 changes: 20 additions & 5 deletions .enb/make.js
@@ -1,4 +1,6 @@
var techs = {
var fs = require('fs'),
path = require('path'),
techs = {
// essential
fileProvider: require('enb/techs/file-provider'),
fileMerge: require('enb/techs/file-merge'),
Expand All @@ -22,6 +24,7 @@ var techs = {
htmlFromBemjson: require('enb-bemxjst/techs/html-from-bemjson')
},
enbBemTechs = require('enb-bem-techs'),
merged = require('./techs/merged'),
levels = [
{ path: 'libs/bem-core/common.blocks', check: false },
{ path: 'libs/bem-core/desktop.blocks', check: false },
Expand All @@ -34,14 +37,25 @@ var techs = {
];

module.exports = function(config) {
var isProd = process.env.YENV === 'production';
var isProd = process.env.YENV === 'production',
mergedBundleName = 'merged',
pathToMargedBundle = path.join('desktop.bundles', mergedBundleName);

fs.existsSync(pathToMargedBundle) || fs.mkdirSync(pathToMargedBundle);

merged(config, pathToMargedBundle);

config.nodes('*.bundles/*', function(nodeConfig) {
var isMergedNode = path.basename(nodeConfig.getPath()) === mergedBundleName;

isMergedNode || nodeConfig.addTechs([
[techs.fileProvider, { target: '?.bemjson.js' }],
[enbBemTechs.bemjsonToBemdecl]
]);

nodeConfig.addTechs([
// essential
[enbBemTechs.levels, { levels: levels }],
[techs.fileProvider, { target: '?.bemjson.js' }],
[enbBemTechs.bemjsonToBemdecl],
[enbBemTechs.deps],
[enbBemTechs.files],

Expand Down Expand Up @@ -94,6 +108,7 @@ module.exports = function(config) {
[techs.borschik, { sourceTarget: '?.css', destTarget: '_?.css', tech: 'cleancss', freeze: true, minify: isProd }]
]);

nodeConfig.addTargets([/* '?.bemtree.js', */ '?.html', '_?.css', '_?.js']);
nodeConfig.addTargets([/* '?.bemtree.js', */ '_?.css', '_?.js']);
isMergedNode || nodeConfig.addTargets(['?.html']);
});
};
33 changes: 33 additions & 0 deletions .enb/techs/merged.js
@@ -0,0 +1,33 @@
var fs = require('fs'),
path = require('path'),
enbBemTechs = require('enb-bem-techs');

module.exports = function(config, node) {
node || (node = '*.bundles/merged');

config.nodes(node, function(nodeConfig) {
var nodePath = nodeConfig.getPath(),
mergedBundleName = path.basename(nodePath),
dir = path.dirname(nodePath),
bundles = fs.readdirSync(dir),
bemdeclFiles = [];

// copy BEMDECL files to merged bundle
bundles.forEach(function(bundle) {
if (bundle === mergedBundleName || bundle[0] === '.') return;

var node = path.join(dir, bundle),
target = bundle + '.bemdecl.js';

nodeConfig.addTech([enbBemTechs.provideBemdecl, {
node: node,
target: target
}]);

bemdeclFiles.push(target);
});

// join BEMDECL files
nodeConfig.addTech([enbBemTechs.mergeBemdecl, { sources: bemdeclFiles }]);
});
}

0 comments on commit 7a98ffd

Please sign in to comment.