add pageshow and page hide
[mootools.git] / Gruntfile.js
blob95611350330659befee6c78a4a6dd7b0ebbe74ac
1 "use strict";
3 module.exports = function(grunt) {
5         grunt.loadNpmTasks('grunt-contrib-uglify');
6         require('load-grunt-tasks')(grunt);
8         var fs = require('fs');
9         var usePhantom = process.env.TRAVIS_PULL_REQUEST != 'false' || process.env.BROWSER == 'phantomjs';
10         var distTasks = JSON.parse(fs.readFileSync('Tests/dist-tasks.json'));
11         var options = require('./Tests/gruntfile-options');
13         grunt.initConfig({
14                 'connect': options.grunt,
15                 'packager': {
16                         options: {name: 'Core'},
17                         'all':options.packager.all,
18                         'nocompat':options.packager.nocompat,
19                         'specs':options.packager.specs,
20                         'specs-nocompat':options.packager.specsNoCompat,
21                         'dist-all': distTasks.build.compat,
22                         'dist-nocompat': distTasks.build.nocompat,
23                         'dist-server': distTasks.build.server
24                 },
25                 uglify: distTasks.uglify,
26                 'karma': {
27                         options: options.karma,
28                         continuous: {
29                                 browsers: ['PhantomJS']
30                         },
31                         sauceTask: {
32                                 browsers: [options.travis.browser]
33                         },
34                         dev: {
35                                 singleRun: false,
36                                 browsers: ['PhantomJS'],
37                                 reporters: 'dots'
38                         },
39                         // Testers for dist build files
40                         compatFull: distTasks.testTasks.compatFull,
41                         compatUglyfied: distTasks.testTasks.compatUglyfied,
42                         nocompatFull: distTasks.testTasks.nocompatFull,
43                         nocompatUglified: distTasks.testTasks.nocompatUglified
44                 },
46                 'clean': {
47                         dist: {src: 'dist/mootools-*.js'},
48                         specs: {src: 'mootools-*.js'}
49                 }
50         });
52         var compatBuild = ['clean:specs', 'packager:all', 'packager:specs'];
53         var nocompatBuild = ['clean:specs', 'packager:nocompat', 'packager:specs-nocompat'];
54         var tasks = options.travis.build == 'default' ? compatBuild : nocompatBuild;
55         tasks = usePhantom ? tasks.concat('karma:continuous') : tasks.concat('karma:sauceTask');
57         grunt.registerTask('default', compatBuild.concat('karma:continuous'));          // local testing - compat build
58         grunt.registerTask('nocompat', nocompatBuild.concat('karma:continuous'));       // local testing - no compat build
59         grunt.registerTask('default:travis', tasks);                                                            // Travis & Sauce Labs
60         grunt.registerTask('distBuild', [                                                                                       // task to build and test /dist files
61                 // Build dist files
62                 'clean:dist', 'packager:dist-all', 'packager:dist-nocompat', 'packager:dist-server', 'uglify',
63                 // Test specs against dist files
64                 'clean:specs', 'packager:specs', 'karma:compatFull', 'karma:compatUglyfied',
65                 'clean:specs', 'packager:specs-nocompat', 'karma:nocompatFull', 'karma:nocompatUglified'
66         ]);