1
+ module . exports = function ( grunt ) {
2
+
3
+ // Project configuration.
4
+ grunt . initConfig ( {
5
+ // Metadata.
6
+ bwr : grunt . file . readJSON ( 'bower.json' ) ,
7
+ pkg : grunt . file . readJSON ( 'package.json' ) ,
8
+ custom : {
9
+ remove : function ( str ) {
10
+ return String ( str ) . remove ( / \. j s $ / , "" ) ;
11
+ }
12
+ } ,
13
+ banner : '/** <%= pkg.main || pkg.name %>.js - v<%= pkg.version %> - ' +
14
+ '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
15
+ '<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
16
+ ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
17
+ ' Licensed under the <%= pkg.license %> license /\n */\n' ,
18
+ // Task configuration.
19
+ concat : {
20
+ options : {
21
+ banner : '<%= banner %>' ,
22
+ stripBanners : "block"
23
+ } ,
24
+ dist : {
25
+ src : [ '<%= pkg.name %>.js' ] ,
26
+ dest : '<%= pkg.name %>.js'
27
+ }
28
+ } ,
29
+ uglify : {
30
+ options : {
31
+ banner : '<%= banner %>'
32
+ } ,
33
+ dist : {
34
+ src : '<%= concat.dist.dest %>' ,
35
+ dest : '<%= pkg.name %>.min.js'
36
+ }
37
+ } ,
38
+ jshint : {
39
+ options : {
40
+ curly : false ,
41
+ eqeqeq : true ,
42
+ immed : true ,
43
+ latedef : true ,
44
+ newcap : true ,
45
+ noarg : true ,
46
+ sub : true ,
47
+ undef : true ,
48
+ unused : true ,
49
+ boss : true ,
50
+ eqnull : true ,
51
+ globals : { "window" : true , "SVG" : true }
52
+ } ,
53
+ svgpathfile : {
54
+ src : 'svg.path.js'
55
+ }
56
+ } ,
57
+ watch : {
58
+ svgpathfile : {
59
+ files : '<%= jshint.svgpathfile.src %>' ,
60
+ tasks : [ 'jshint:svgpathfile' ]
61
+ }
62
+ }
63
+ } ) ;
64
+
65
+ // These plugins provide necessary tasks.
66
+ grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
67
+ grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
68
+ grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
69
+ grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
70
+
71
+ // Default task.
72
+ grunt . registerTask ( 'default' , [ 'jshint' , 'concat' , 'uglify' ] ) ;
73
+
74
+ } ;
0 commit comments