From b294323854fd167f6ddf4d76f43e3014ead1b68c Mon Sep 17 00:00:00 2001
From: Benjamin Tan <demoneaux@gmail.com>
Date: Sun, 30 Apr 2017 17:51:20 +0800
Subject: [PATCH] Upgrade Grunt dependencies and standardise on a consistent
 file format.

Closes #1226, #1538.
---
 .travis.yml  |  6 +++--
 Gruntfile.js | 75 ++++++++++++++++++++++++++--------------------------
 package.json | 27 +++++++++----------
 3 files changed, 54 insertions(+), 54 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 264c6ecc..ec3b27d5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,7 @@
 language: node_js
 node_js:
-  - 4.1.1
+  - 4
 before_script:
-  - npm install -g grunt-cli
\ No newline at end of file
+  - npm install -g grunt-cli
+after_script:
+  - grunt retire
diff --git a/Gruntfile.js b/Gruntfile.js
index aa04b68c..f0f27296 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -25,7 +25,8 @@ module.exports = function(grunt) {
 
 		uglify: {
 			options: {
-				banner: '<%= meta.banner %>\n'
+				banner: '<%= meta.banner %>\n',
+				screwIE8: false
 			},
 			build: {
 				src: 'js/reveal.js',
@@ -35,34 +36,31 @@ module.exports = function(grunt) {
 
 		sass: {
 			core: {
-				files: {
-					'css/reveal.css': 'css/reveal.scss',
-				}
+				src: 'css/reveal.scss',
+				dest: 'css/reveal.css'
 			},
 			themes: {
-				files: [
-					{
-						expand: true,
-						cwd: 'css/theme/source',
-						src: ['*.sass', '*.scss'],
-						dest: 'css/theme',
-						ext: '.css'
-					}
-				]
+				expand: true,
+				cwd: 'css/theme/source',
+				src: ['*.sass', '*.scss'],
+				dest: 'css/theme',
+				ext: '.css'
 			}
 		},
 
 		autoprefixer: {
-			dist: {
+			core: {
 				src: 'css/reveal.css'
 			}
 		},
 
 		cssmin: {
+			options: {
+				compatibility: 'ie9'
+			},
 			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
+				src: 'css/reveal.css',
+				dist: 'css/reveal.min.css'
 			}
 		},
 
@@ -72,7 +70,7 @@ module.exports = function(grunt) {
 				eqeqeq: true,
 				immed: true,
 				esnext: true,
-				latedef: true,
+				latedef: 'nofunc',
 				newcap: true,
 				noarg: true,
 				sub: true,
@@ -100,20 +98,22 @@ module.exports = function(grunt) {
 					livereload: true,
 					open: true
 				}
-			},
-
+			}
 		},
 
 		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**',
-				'**.md'
-			]
+			bundle: {
+				src: [
+					'index.html',
+					'css/**',
+					'js/**',
+					'lib/**',
+					'images/**',
+					'plugin/**',
+					'**.md'
+				],
+				dest: 'reveal-js-presentation.zip'
+			}
 		},
 
 		watch: {
@@ -146,25 +146,24 @@ module.exports = function(grunt) {
 		},
 
 		retire: {
-			js: ['js/reveal.js', 'lib/js/*.js', 'plugin/**/*.js'],
-			node: ['.'],
-			options: {}
+			js: [ 'js/reveal.js', 'lib/js/*.js', 'plugin/**/*.js' ],
+			node: [ '.' ]
 		}
 
 	});
 
 	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+	grunt.loadNpmTasks( 'grunt-contrib-connect' );
 	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
+	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
 	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
 	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
 	grunt.loadNpmTasks( 'grunt-autoprefixer' );
-	grunt.loadNpmTasks( 'grunt-zip' );
 	grunt.loadNpmTasks( 'grunt-retire' );
-
+	grunt.loadNpmTasks( 'grunt-sass' );
+	grunt.loadNpmTasks( 'grunt-zip' );
+	
 	// Default task
 	grunt.registerTask( 'default', [ 'css', 'js' ] );
 
diff --git a/package.json b/package.json
index eaec2b24..daa5f1db 100644
--- a/package.json
+++ b/package.json
@@ -23,22 +23,21 @@
     "node": ">=4.0.0"
   },
   "devDependencies": {
-    "express": "~4.14.0",
-    "grunt": "~1.0.1",
-    "grunt-autoprefixer": "~3.0.3",
-    "grunt-cli": "~1.2.0",
-    "grunt-contrib-connect": "~0.11.2",
-    "grunt-contrib-cssmin": "~0.14.0",
-    "grunt-contrib-jshint": "~0.11.3",
+    "express": "^4.15.2",
+    "grunt": "^1.0.1",
+    "grunt-autoprefixer": "^3.0.4",
+    "grunt-cli": "^1.2.0",
+    "grunt-contrib-connect": "^1.0.2",
+    "grunt-contrib-cssmin": "^2.1.0",
+    "grunt-contrib-jshint": "^1.1.0",
     "grunt-contrib-qunit": "~1.2.0",
-    "grunt-contrib-uglify": "~0.9.2",
-    "grunt-contrib-watch": "~1.0.0",
-    "grunt-sass": "~1.2.0",
-    "grunt-retire": "~0.3.10",
+    "grunt-contrib-uglify": "^2.3.0",
+    "grunt-contrib-watch": "^1.0.0",
+    "grunt-sass": "^2.0.0",
+    "grunt-retire": "^1.0.7",
     "grunt-zip": "~0.17.1",
-    "mustache": "~2.2.1",
-    "node-sass": "~3.13.0",
-    "socket.io": "^1.4.8"
+    "mustache": "^2.3.0",
+    "socket.io": "^1.7.3"
   },
   "license": "MIT"
 }
-- 
GitLab