aboutsummaryrefslogtreecommitdiff
path: root/Gruntfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'Gruntfile.js')
-rw-r--r--Gruntfile.js113
1 files changed, 113 insertions, 0 deletions
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..ee4e1c7
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,113 @@
+module.exports = function(grunt) {
+
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ concat: {
+ js: {
+ options: {
+ separator: ';'
+ },
+ src: [
+ 'libraries/jquery/dist/jquery.js',
+ 'libraries/bootstrap/dist/js/bootstrap.js',
+ 'libraries/typeahead.js/dist/typeahead.bundle.js',
+ 'libraries/list.js/dist/list.js',
+ 'libraries/leaflet-soton/resources/leaflet/dist/leaflet.js',
+ 'libraries/leaflet-soton/resources/leaflet-markercluster/dist/leaflet.markercluster.js',
+ 'libraries/leaflet-soton/resources/leaflet-locatecontrol/src/L.Control.Locate.js',
+ 'libraries/leaflet-soton/resources/leaflet-hash/leaflet-hash.js',
+ 'libraries/leaflet-soton/resources/leaflet-indoor/leaflet-indoor.js',
+ 'libraries/leaflet-soton/resources/leaflet-route/leaflet-route.js',
+ 'libraries/leaflet-soton/src/leaflet-soton.js',
+ 'scripts.js'
+ ],
+ dest: 'dist/scripts.js',
+ nonull: true
+ },
+ css: {
+ src: [
+ 'libraries/bootstrap/dist/css/bootstrap.css',
+ 'libraries/leaflet-soton/resources/leaflet/dist/leaflet.css',
+ 'libraries/leaflet-soton/resources/leaflet-markercluster/dist/MarkerCluster.css',
+ 'libraries/leaflet-soton/resources/leaflet-locatecontrol/src/L.Control.Locate.css',
+ 'libraries/leaflet-soton/src/leaflet-soton.css',
+ 'style.css'
+ ],
+ dest: 'dist/css/style.css',
+ nonull: true
+ }
+ },
+ uglify: {
+ options: {
+ banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
+ },
+ dist: {
+ files: {
+ 'dist/scripts.js': ['<%= concat.js.dest %>']
+ }
+ }
+ },
+ cssmin: {
+ add_banner: {
+ options: {
+ banner: '/* My minified css file */'
+ },
+ files: {
+ 'dist/css/style.css': ['<%= concat.css.dest %>']
+ }
+ }
+ },
+ clean: {
+ build: ['dist']
+ },
+ copy: {
+ index: {
+ src: 'index.html',
+ dest: 'dist/index.html',
+ nonull: true
+ },
+ data: {
+ src: 'libraries/leaflet-soton/data.json',
+ dest: 'dist/data.json',
+ nonull: true
+ },
+ fonts: {
+ src: 'libraries/bootstrap/dist/fonts/*',
+ dest: 'dist/fonts/',
+ expand: 'false',
+ flatten: true,
+ nonull: true
+ },
+ images: {
+ src: 'libraries/leaflet-soton/resources/images/*',
+ dest: 'dist/images/',
+ flatten: true,
+ expand: 'false',
+ nonull: true
+ },
+ logos: {
+ src: 'libraries/leaflet-soton/resources/images/logos/*',
+ dest: 'dist/images/logos/',
+ flatten: true,
+ expand: 'false',
+ nonull: true
+ },
+ locateimage: {
+ src: 'libraries/leaflet-soton/resources/leaflet-locatecontrol/src/images/*',
+ dest: 'dist/css/images/',
+ flatten: true,
+ expand: 'false',
+ nonull: true
+ }
+ }
+ });
+
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+
+ grunt.registerTask('default', ['clean:build', 'concat', 'copy']);
+ grunt.registerTask('release', ['clean:build', 'concat', 'uglify', 'cssmin', 'copy']);
+};