/*jshint node: true */
module.exports = function(grunt) {
var browsers = [{
browserName: "iphone",
platform: "OS X 10.8",
version: "6"
}, {
browserName: "iphone",
platform: "OS X 10.10",
version: "9.2"
}, {
browserName: "android",
platform: "Linux",
version: "4.0"
}, {
browserName: "android",
platform: "Linux",
version: "4.4"
}, {
browserName: "android",
platform: "Linux",
version: "5.1"
}, {
browserName: "firefox",
platform: "Windows 10"
}, {
browserName: "chrome",
platform: "Windows 10"
}, {
browserName: "internet explorer",
platform: "XP",
version: "7"
}, {
browserName: "internet explorer",
platform: "Windows 7",
version: "8"
}, {
browserName: "internet explorer",
platform: "Windows 7",
version: "9"
}, {
browserName: "internet explorer",
platform: "Windows 8",
version: "10"
}, {
browserName: "internet explorer",
platform: "Windows 10",
version: "11"
}, {
browserName: "microsoftedge",
platform: "Windows 10",
version: "13.10586"
}, {
browserName: "opera",
platform: "Windows 2008",
version: "12"
}, {
browserName: "safari",
platform: "OS X 10.8",
version: "6"
}, {
browserName: "safari",
platform: "OS X 10.9",
version: "7"
}, {
browserName: "safari",
platform: "OS X 10.10",
version: "8"
}, {
browserName: "safari",
platform: "OS X 10.11",
version: "9"
}];
var tags = [];
if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST != "false") {
tags.push("pr" + process.env.TRAVIS_PULL_REQUEST);
} else if (process.env.TRAVIS_BRANCH) {
tags.push(process.env.TRAVIS_BRANCH);
}
grunt.initConfig({
connect: {
server: {
options: {
base: "",
port: 9999
}
}
},
'saucelabs-qunit': {
all: {
options: {
urls: ["http://127.0.0.1:9999/test/index.html"],
tunnelTimeout: 5,
build: process.env.TRAVIS_JOB_ID,
concurrency: 3,
browsers: browsers,
testname: "qunit tests",
tags: tags
}
}
},
jshint: {
options: {
jshintrc: "./.jshintrc"
},
all: ['./lib/*.js']
},
browserify: {
all: {
files: {
'dist/jszip.js': ['lib/index.js']
},
options: {
browserifyOptions: {
standalone: 'JSZip',
insertGlobalVars : {
Buffer: function () {
// instead of the full polyfill, we just use the raw value
// (or undefined).
return '(typeof Buffer !== "undefined" ? Buffer : undefined)';
}
}
},
postBundleCB: function(err, src, done) {
// add the license
var license = require('fs').readFileSync('lib/license_header.js');
// remove the source mapping of zlib.js, see #75
var srcWithoutSourceMapping = src.toString().replace(/\/\/@ sourceMappingURL=raw..flate.min.js.map/g, '');
done(err, license + srcWithoutSourceMapping);
}
}
}
},
uglify: {
options: {
report: 'gzip',
mangle: true,
preserveComments: 'some'
},
all: {
src: 'dist/jszip.js',
dest: 'dist/jszip.min.js'
}
}
});
grunt.loadNpmTasks("grunt-saucelabs");
grunt.loadNpmTasks("grunt-contrib-connect");
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
if (process.env.SAUCE_USERNAME && process.env.SAUCE_ACCESS_KEY) {
grunt.registerTask("test", ["connect", "saucelabs-qunit"]);
} else {
grunt.registerTask("test", []);
}
grunt.registerTask("build", ["browserify", "uglify"]);
grunt.registerTask("default", ["jshint", "build"]);
};
|