Dateigrösse: 3.38 kb
1 /*jshint node:true, quotmark:single */ 2 'use strict'; 3 4 module.exports = function (grunt) { 5 6 grunt.initConfig({ 7 pkg: grunt.file.readJSON('package.json'), 8 qunit: { 9 all: 'test/index.html' 10 }, 11 jshint: { 12 options: { 13 jshintrc: true 14 }, 15 grunt: 'Gruntfile.js', 16 source: 'src/**/*.js', 17 tests: 'test/**/*.js' 18 }, 19 uglify: { 20 options: { 21 banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n' 22 }, 23 build: { 24 files: { 25 'build/jquery.cookie-<%= pkg.version %>.min.js': 'src/jquery.cookie.js' 26 } 27 } 28 }, 29 watch: { 30 options: { 31 livereload: true 32 }, 33 files: '{src,test}/**/*.js', 34 tasks: 'default' 35 }, 36 compare_size: { 37 files: [ 38 'build/jquery.cookie-<%= pkg.version %>.min.js', 39 'src/jquery.cookie.js' 40 ], 41 options: { 42 compress: { 43 gz: function (fileContents) { 44 return require('gzip-js').zip(fileContents, {}).length; 45 } 46 } 47 } 48 }, 49 connect: { 50 saucelabs: { 51 options: { 52 port: 9999, 53 base: ['.', 'test'] 54 } 55 }, 56 tests: { 57 options: { 58 port: 9998, 59 base: ['.', 'test'], 60 open: 'http://127.0.0.1:9998', 61 keepalive: true, 62 livereload: true 63 } 64 } 65 }, 66 'saucelabs-qunit': { 67 all: { 68 options: { 69 urls: ['http://127.0.0.1:9999'], 70 build: process.env.TRAVIS_JOB_ID, 71 browsers: [ 72 // iOS 73 { 74 browserName: 'iphone', 75 platform: 'OS X 10.9', 76 version: '7.1' 77 }, 78 { 79 browserName: 'ipad', 80 platform: 'OS X 10.9', 81 version: '7.1' 82 }, 83 // Android 84 { 85 browserName: 'android', 86 platform: 'Linux', 87 version: '4.3' 88 }, 89 // OS X 90 { 91 browserName: 'safari', 92 platform: 'OS X 10.9', 93 version: '7' 94 }, 95 { 96 browserName: 'safari', 97 platform: 'OS X 10.8', 98 version: '6' 99 }, 100 { 101 browserName: 'firefox', 102 platform: 'OS X 10.9', 103 version: '28' 104 }, 105 // Windows 106 { 107 browserName: 'internet explorer', 108 platform: 'Windows 8.1', 109 version: '11' 110 }, 111 { 112 browserName: 'internet explorer', 113 platform: 'Windows 8', 114 version: '10' 115 }, 116 { 117 browserName: 'internet explorer', 118 platform: 'Windows 7', 119 version: '11' 120 }, 121 { 122 browserName: 'internet explorer', 123 platform: 'Windows 7', 124 version: '10' 125 }, 126 { 127 browserName: 'internet explorer', 128 platform: 'Windows 7', 129 version: '9' 130 }, 131 { 132 browserName: 'internet explorer', 133 platform: 'Windows 7', 134 version: '8' 135 }, 136 { 137 browserName: 'firefox', 138 platform: 'Windows 7', 139 version: '29' 140 }, 141 { 142 browserName: 'chrome', 143 platform: 'Windows 7', 144 version: '34' 145 }, 146 // Linux 147 { 148 browserName: 'firefox', 149 platform: 'Linux', 150 version: '29' 151 } 152 ] 153 } 154 } 155 } 156 }); 157 158 // Loading dependencies 159 for (var key in grunt.file.readJSON('package.json').devDependencies) { 160 if (key !== 'grunt' && key.indexOf('grunt') === 0) { 161 grunt.loadNpmTasks(key); 162 } 163 } 164 165 grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']); 166 grunt.registerTask('saucelabs', ['connect:saucelabs', 'saucelabs-qunit']); 167 grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']); 168 }; 169