kibana/tasks/config/requirejs.js

69 lines
2 KiB
JavaScript
Raw Normal View History

module.exports = function (grunt) {
var config = {
build: {
options: {
appDir: '<%= src %>',
dir: '<%= build %>',
mainConfigFile: '<%= app %>/require.config.js',
modules: [
{
name: 'kibana',
excludeShallow: [
'../config',
],
include: [
'controllers/kibana'
]
}
],
optimize: 'none',
optimizeCss: 'none',
optimizeAllPluginResources: false,
removeCombined: true,
findNestedDependencies: true,
normalizeDirDefines: 'all',
inlineText: true,
skipPragmas: true,
done: function (done, output) {
var analysis = require('rjs-build-analysis');
var tree = analysis.parse(output);
var duplicates = analysis.duplicates(tree);
if (duplicates.length > 0) {
grunt.log.subhead('Duplicates found in requirejs build:');
grunt.log.warn(duplicates);
return done(new Error('r.js built duplicate modules, please check the excludes option.'));
} else {
var relative = [];
var bundles = tree.bundles || [];
bundles.forEach(function (bundle) {
bundle.children.forEach(function (child) {
2014-06-20 21:27:41 +02:00
if (child.match(/\.\//)) relative.push(child + ' is relative to ' + bundle.parent);
});
});
if (relative.length) {
grunt.log.subhead('Relative modules found in requirejs build:');
grunt.log.warn(relative);
return done(new Error('r.js build contains relative modules, duplicates probably exist'));
}
}
done();
}
}
}
};
// include each app
var main = config.build.options.modules[0];
var configFile = require('requirejs')(grunt.config.get('src') + '/config.js');
configFile.apps.forEach(function (app) {
main.include.push('apps/' + app.id + '/index');
});
return config;
};