169 lines
3.3 KiB
JavaScript
169 lines
3.3 KiB
JavaScript
/*jshint node:true, quotmark:single */
|
|
'use strict';
|
|
|
|
module.exports = function (grunt) {
|
|
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
qunit: {
|
|
all: 'test/index.html'
|
|
},
|
|
jshint: {
|
|
options: {
|
|
jshintrc: true
|
|
},
|
|
grunt: 'Gruntfile.js',
|
|
source: 'src/**/*.js',
|
|
tests: 'test/**/*.js'
|
|
},
|
|
uglify: {
|
|
options: {
|
|
banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n'
|
|
},
|
|
build: {
|
|
files: {
|
|
'build/jquery.cookie-<%= pkg.version %>.min.js': 'src/jquery.cookie.js'
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
options: {
|
|
livereload: true
|
|
},
|
|
files: '{src,test}/**/*.js',
|
|
tasks: 'default'
|
|
},
|
|
compare_size: {
|
|
files: [
|
|
'build/jquery.cookie-<%= pkg.version %>.min.js',
|
|
'src/jquery.cookie.js'
|
|
],
|
|
options: {
|
|
compress: {
|
|
gz: function (fileContents) {
|
|
return require('gzip-js').zip(fileContents, {}).length;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
connect: {
|
|
saucelabs: {
|
|
options: {
|
|
port: 9999,
|
|
base: ['.', 'test']
|
|
}
|
|
},
|
|
tests: {
|
|
options: {
|
|
port: 9998,
|
|
base: ['.', 'test'],
|
|
open: 'http://127.0.0.1:9998',
|
|
keepalive: true,
|
|
livereload: true
|
|
}
|
|
}
|
|
},
|
|
'saucelabs-qunit': {
|
|
all: {
|
|
options: {
|
|
urls: ['http://127.0.0.1:9999'],
|
|
build: process.env.TRAVIS_JOB_ID,
|
|
browsers: [
|
|
// iOS
|
|
{
|
|
browserName: 'iphone',
|
|
platform: 'OS X 10.9',
|
|
version: '7.1'
|
|
},
|
|
{
|
|
browserName: 'ipad',
|
|
platform: 'OS X 10.9',
|
|
version: '7.1'
|
|
},
|
|
// Android
|
|
{
|
|
browserName: 'android',
|
|
platform: 'Linux',
|
|
version: '4.3'
|
|
},
|
|
// OS X
|
|
{
|
|
browserName: 'safari',
|
|
platform: 'OS X 10.9',
|
|
version: '7'
|
|
},
|
|
{
|
|
browserName: 'safari',
|
|
platform: 'OS X 10.8',
|
|
version: '6'
|
|
},
|
|
{
|
|
browserName: 'firefox',
|
|
platform: 'OS X 10.9',
|
|
version: '28'
|
|
},
|
|
// Windows
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 8.1',
|
|
version: '11'
|
|
},
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 8',
|
|
version: '10'
|
|
},
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 7',
|
|
version: '11'
|
|
},
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 7',
|
|
version: '10'
|
|
},
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 7',
|
|
version: '9'
|
|
},
|
|
{
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 7',
|
|
version: '8'
|
|
},
|
|
{
|
|
browserName: 'firefox',
|
|
platform: 'Windows 7',
|
|
version: '29'
|
|
},
|
|
{
|
|
browserName: 'chrome',
|
|
platform: 'Windows 7',
|
|
version: '34'
|
|
},
|
|
// Linux
|
|
{
|
|
browserName: 'firefox',
|
|
platform: 'Linux',
|
|
version: '29'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// Loading dependencies
|
|
for (var key in grunt.file.readJSON('package.json').devDependencies) {
|
|
if (key !== 'grunt' && key.indexOf('grunt') === 0) {
|
|
grunt.loadNpmTasks(key);
|
|
}
|
|
}
|
|
|
|
grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']);
|
|
grunt.registerTask('saucelabs', ['connect:saucelabs', 'saucelabs-qunit']);
|
|
grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']);
|
|
};
|