|
| 1 | +'use strict'; |
| 2 | +var LIVERELOAD_PORT = 35729; |
| 3 | +var lrSnippet = require('connect-livereload')({port: LIVERELOAD_PORT}); |
| 4 | +var mountFolder = function (connect, dir) { |
| 5 | + return connect.static(require('path').resolve(dir)); |
| 6 | +}; |
| 7 | + |
1 | 8 | module.exports = function(grunt) { |
| 9 | + require('time-grunt')(grunt); |
| 10 | + require('load-grunt-tasks')(grunt); |
2 | 11 |
|
3 | 12 | grunt.initConfig({ |
4 | 13 |
|
5 | 14 | pkg: grunt.file.readJSON('package.json'), |
6 | 15 |
|
7 | | - concat: { |
8 | | - options: { |
9 | | - separator: "\n\n" |
10 | | - }, |
11 | | - dist: { |
12 | | - src: [ |
13 | | - 'src/_intro.js', |
14 | | - 'src/main.js', |
15 | | - 'src/_outro.js' |
16 | | - ], |
17 | | - dest: 'dist/<%= pkg.name.replace(".js", "") %>.js' |
18 | | - } |
19 | | - }, |
20 | | - |
21 | 16 | uglify: { |
22 | 17 | options: { |
23 | | - banner: '/*! <%= pkg.name.replace(".js", "") %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' |
| 18 | + banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n', |
| 19 | + sourceMap: true |
24 | 20 | }, |
25 | 21 | dist: { |
26 | 22 | files: { |
27 | | - 'dist/<%= pkg.name.replace(".js", "") %>.min.js': ['<%= concat.dist.dest %>'] |
| 23 | + 'dist/<%= pkg.name %>.min.js': ['dist/<%= pkg.name %>.js'] |
28 | 24 | } |
29 | 25 | } |
30 | 26 | }, |
31 | 27 |
|
32 | | - qunit: { |
33 | | - files: ['test/*.html'] |
34 | | - }, |
35 | | - |
36 | 28 | jshint: { |
37 | | - files: ['dist/java-deserializer.js'], |
| 29 | + files: ['src/**/*.js'], |
38 | 30 | options: { |
39 | 31 | globals: { |
40 | | - console: true, |
41 | | - module: true, |
42 | | - document: true |
| 32 | + console: true |
43 | 33 | }, |
44 | 34 | jshintrc: '.jshintrc' |
45 | 35 | } |
46 | 36 | }, |
47 | 37 |
|
| 38 | + browserify: { |
| 39 | + dist: { |
| 40 | + options: { |
| 41 | + transform: [ |
| 42 | + ["babelify", { |
| 43 | + sourceMaps: true |
| 44 | + }] |
| 45 | + ], |
| 46 | + browserifyOptions: { |
| 47 | + standalone: 'JavaDeserializer', |
| 48 | + debug: true |
| 49 | + } |
| 50 | + }, |
| 51 | + files: { |
| 52 | + // if the source file has an extension of es6 then |
| 53 | + // we change the name of the source file accordingly. |
| 54 | + // The result file's extension is always .js |
| 55 | + "./dist/<%= pkg.name %>.js": ["./src/<%= pkg.name %>.js"] |
| 56 | + } |
| 57 | + } |
| 58 | + }, |
| 59 | + |
48 | 60 | watch: { |
49 | | - files: ['<%= jshint.files %>'], |
50 | | - tasks: ['concat', 'jshint', 'qunit'] |
| 61 | + options: { |
| 62 | + nospawn: true, |
| 63 | + livereload: { liveCSS: false } |
| 64 | + }, |
| 65 | + livereload: { |
| 66 | + options: { |
| 67 | + livereload: true |
| 68 | + }, |
| 69 | + files: [ |
| 70 | + './demo/**/*', |
| 71 | + './dist/<%= pkg.name %>.js', |
| 72 | + './Gruntfile.js' |
| 73 | + ] |
| 74 | + }, |
| 75 | + js: { |
| 76 | + files: ['./src/**/*.js'], |
| 77 | + tasks: ['build'] |
| 78 | + } |
| 79 | + }, |
| 80 | + connect: { |
| 81 | + options: { |
| 82 | + port: 9005, |
| 83 | + // change this to '0.0.0.0' to access the server from outside |
| 84 | + hostname: '0.0.0.0' |
| 85 | + }, |
| 86 | + livereload: { |
| 87 | + options: { |
| 88 | + middleware: function (connect) { |
| 89 | + return [ |
| 90 | + lrSnippet, |
| 91 | + mountFolder(connect, './'), |
| 92 | + ]; |
| 93 | + } |
| 94 | + } |
| 95 | + } |
51 | 96 | } |
52 | 97 |
|
53 | 98 | }); |
54 | 99 |
|
55 | | - grunt.loadNpmTasks('grunt-contrib-uglify'); |
56 | | - grunt.loadNpmTasks('grunt-contrib-jshint'); |
57 | | - grunt.loadNpmTasks('grunt-contrib-qunit'); |
58 | | - grunt.loadNpmTasks('grunt-contrib-watch'); |
59 | | - grunt.loadNpmTasks('grunt-contrib-concat'); |
| 100 | + grunt.registerTask('serve', function (target) { |
| 101 | + grunt.task.run([ |
| 102 | + 'connect:livereload', |
| 103 | + 'watch' |
| 104 | + ]); |
| 105 | + }); |
60 | 106 |
|
61 | | - grunt.registerTask('test', ['jshint', 'qunit']); |
62 | | - grunt.registerTask('default', ['concat', 'jshint', 'qunit', 'uglify']); |
| 107 | + grunt.registerTask('build', [ |
| 108 | + 'jshint', |
| 109 | + 'browserify', |
| 110 | + 'uglify' |
| 111 | + ]); |
63 | 112 |
|
| 113 | + grunt.registerTask('default', [ |
| 114 | + 'build', |
| 115 | + 'serve' |
| 116 | + ]); |
64 | 117 | }; |
0 commit comments