mirror of
https://github.com/elastic/kibana.git
synced 2025-04-21 00:13:52 -04:00
Backports PR #9327
**Commit 1:**
build: remove deepModules hackery
The deepModules hacks in the build system were added to support the long
paths that resulted from npm2, but npm3 fundamentally addresses that
problem, so deepModules is no longer necessary. In practical terms, npm3
shouldn't ever cause path lengths to become so long that they trigger
path length problems on certain operating systems.
* Original sha: 19fcc93ad3
* Authored by Court Ewing <court@epixa.com> on 2016-12-02T00:13:13Z
80 lines
2.6 KiB
JavaScript
80 lines
2.6 KiB
JavaScript
const camelCase = require('lodash').camelCase;
|
|
require('babel/register')(require('./src/optimize/babel_options').node);
|
|
|
|
module.exports = function (grunt) {
|
|
// set the config once before calling load-grunt-config
|
|
// and once during so that we have access to it via
|
|
// grunt.config.get() within the config files
|
|
const config = {
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
root: __dirname,
|
|
src: __dirname + '/src',
|
|
buildDir: __dirname + '/build', // temporary build directory
|
|
plugins: __dirname + '/src/core_plugins',
|
|
server: __dirname + '/src/server',
|
|
target: __dirname + '/target', // location of the compressed build targets
|
|
testUtilsDir: __dirname + '/src/test_utils',
|
|
configFile: __dirname + '/src/config/kibana.yml',
|
|
|
|
karmaBrowser: (function () {
|
|
if (grunt.option('browser')) {
|
|
return grunt.option('browser');
|
|
}
|
|
|
|
switch (require('os').platform()) {
|
|
case 'win32':
|
|
return 'IE';
|
|
default:
|
|
return 'Chrome';
|
|
}
|
|
}()),
|
|
|
|
nodeVersion: grunt.file.read('.node-version').trim(),
|
|
|
|
meta: {
|
|
banner: '/*! <%= package.name %> - v<%= package.version %> - ' +
|
|
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
|
'<%= package.homepage ? " * " + package.homepage + "\\n" : "" %>' +
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= package.author.company %>;' +
|
|
' Licensed <%= package.license %> */\n'
|
|
},
|
|
|
|
lintThese: [
|
|
'Gruntfile.js',
|
|
'<%= root %>/tasks/**/*.js',
|
|
'<%= root %>/test/**/*.js',
|
|
'<%= src %>/**/*.js',
|
|
'!<%= src %>/ui/public/angular-bootstrap/**/*.js',
|
|
'!<%= src %>/core_plugins/timelion/bower_components/**/*.js',
|
|
'!<%= src %>/core_plugins/timelion/vendor_components/**/*.js',
|
|
'!<%= src %>/fixtures/**/*.js',
|
|
'!<%= root %>/test/fixtures/scenarios/**/*.js'
|
|
]
|
|
};
|
|
|
|
grunt.config.merge(config);
|
|
|
|
// must run before even services/platforms
|
|
grunt.config.set('build', require('./tasks/config/build')(grunt));
|
|
|
|
config.packageScriptsDir = __dirname + '/tasks/build/package_scripts';
|
|
// ensure that these run first, other configs need them
|
|
config.services = require('./tasks/config/services')(grunt);
|
|
config.platforms = require('./tasks/config/platforms')(grunt);
|
|
|
|
grunt.config.merge(config);
|
|
|
|
// load plugins
|
|
require('load-grunt-config')(grunt, {
|
|
configPath: __dirname + '/tasks/config',
|
|
init: true,
|
|
config: config,
|
|
loadGruntTasks: {
|
|
pattern: ['grunt-*', '@*/grunt-*', 'gruntify-*', '@*/gruntify-*', 'intern']
|
|
}
|
|
});
|
|
|
|
// load task definitions
|
|
grunt.task.loadTasks('tasks');
|
|
grunt.task.loadTasks('tasks/build');
|
|
};
|