116 lines
3.3 KiB
JavaScript
116 lines
3.3 KiB
JavaScript
/* jshint node:true */
|
|
'use strict';
|
|
|
|
module.exports = function (grunt) {
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
distDir: 'dist',
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
meta: {
|
|
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
|
|
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
|
'<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
|
|
' Licensed <%= pkg.license %> */\n' +
|
|
' // built using browserify\n\n'
|
|
},
|
|
clean: {
|
|
dist: {
|
|
src: ['<%= distDir %>']
|
|
}
|
|
},
|
|
jshint: {
|
|
source: {
|
|
src: [
|
|
'src/**/*.js',
|
|
'scripts/**/*.js',
|
|
'test/**/*.js -test/browser_integration/yaml_tests.js',
|
|
'Gruntfile.js'
|
|
],
|
|
options: {
|
|
jshintrc: true
|
|
}
|
|
}
|
|
},
|
|
browserify: {
|
|
client: {
|
|
files: {
|
|
'<%= distDir %>/elasticsearch.js': 'src/elasticsearch.js'
|
|
},
|
|
options: {
|
|
standalone: 'elasticsearch',
|
|
ignore: [
|
|
'src/lib/connectors/jquery.js',
|
|
'src/lib/connectors/angular.js'
|
|
]
|
|
}
|
|
},
|
|
angular: {
|
|
files: {
|
|
'<%= distDir %>/elasticsearch.angular.js': ['src/elasticsearch.angular.js']
|
|
},
|
|
options: {
|
|
ignore: [
|
|
'src/lib/connectors/jquery.js',
|
|
'src/lib/connectors/xhr.js',
|
|
'when'
|
|
]
|
|
}
|
|
},
|
|
jquery: {
|
|
files: {
|
|
'<%= distDir %>/elasticsearch.jquery.js': ['src/elasticsearch.jquery.js']
|
|
},
|
|
options: {
|
|
ignore: [
|
|
'src/lib/connectors/angular.js',
|
|
'src/lib/connectors/xhr.js',
|
|
'when'
|
|
]
|
|
}
|
|
}
|
|
},
|
|
uglify: {
|
|
dist: {
|
|
files: {
|
|
'<%= distDir %>/elasticsearch.min.js': '<%= distDir %>/elasticsearch.js',
|
|
'<%= distDir %>/elasticsearch.angular.min.js': '<%= distDir %>/elasticsearch.angular.js',
|
|
'<%= distDir %>/elasticsearch.jquery.min.js': '<%= distDir %>/elasticsearch.jquery.js'
|
|
}
|
|
}
|
|
},
|
|
concat: {
|
|
dist_banners: {
|
|
files: {
|
|
'<%= distDir %>/elasticsearch.angular.js': '<%= distDir %>/elasticsearch.angular.js',
|
|
'<%= distDir %>/elasticsearch.angular.min.js': '<%= distDir %>/elasticsearch.angular.min.js',
|
|
'<%= distDir %>/elasticsearch.jquery.js': '<%= distDir %>/elasticsearch.jquery.js',
|
|
'<%= distDir %>/elasticsearch.jquery.min.js': '<%= distDir %>/elasticsearch.jquery.min.js',
|
|
'<%= distDir %>/elasticsearch.js': '<%= distDir %>/elasticsearch.js',
|
|
'<%= distDir %>/elasticsearch.min.js': '<%= distDir %>/elasticsearch.min.js'
|
|
},
|
|
options: {
|
|
banner: '<%= meta.banner %>'
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// load plugins
|
|
grunt.loadNpmTasks('grunt-browserify');
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
|
|
// Default task runs the build process.
|
|
grunt.registerTask('default', [
|
|
'clean:dist',
|
|
'browserify',
|
|
'uglify:dist',
|
|
'concat:dist_banners'
|
|
]);
|
|
|
|
};
|