4
4
* license that can be found in the LICENSE file.
5
5
*/
6
6
module . exports = function ( grunt ) {
7
- var banner = [ grunt . file . read ( 'LICENSE' ) , '// @version ' + grunt . file . readJSON ( 'package.json' ) . version , '' ] . join ( grunt . util . linefeed ) ;
7
+ var temporary = require ( 'temporary' ) ;
8
+ var tmp = new temporary . File ( ) ;
8
9
9
10
// recursive module builder
10
11
var path = require ( 'path' ) ;
@@ -24,7 +25,7 @@ module.exports = function(grunt) {
24
25
return modules ;
25
26
}
26
27
27
- Polymer = readManifest ( 'build.json' ) ;
28
+ var Polymer = readManifest ( 'build.json' , [ tmp . path ] ) ;
28
29
29
30
grunt . initConfig ( {
30
31
karma : {
@@ -52,8 +53,8 @@ module.exports = function(grunt) {
52
53
} ,
53
54
uglify : {
54
55
options : {
55
- banner : banner ,
56
- nonull : true
56
+ nonull : true ,
57
+ preserveComments : 'some'
57
58
} ,
58
59
Polymer : {
59
60
options : {
@@ -131,8 +132,24 @@ module.exports = function(grunt) {
131
132
} ) ;
132
133
grunt . file . write ( dest , JSON . stringify ( destMap ) ) ;
133
134
} ) ;
134
- grunt . registerTask ( 'default' , [ 'concat_sourcemap' , 'uglify' , 'sourcemap_copy:polymer.concat.js.map:polymer.min.js.map' , 'audit' ] ) ;
135
- grunt . registerTask ( 'minify' , [ 'uglify' ] ) ;
135
+
136
+ // Workaround for banner + sourceMap + uglify: https://github.com/gruntjs/grunt-contrib-uglify/issues/22
137
+ grunt . registerTask ( 'gen_license' , function ( ) {
138
+ var banner = [
139
+ '/* @license' ,
140
+ grunt . file . read ( 'LICENSE' ) ,
141
+ '@version ' + grunt . file . readJSON ( 'package.json' ) . version ,
142
+ '*/'
143
+ ] . join ( grunt . util . linefeed ) ;
144
+ grunt . file . write ( tmp . path , banner ) ;
145
+ } ) ;
146
+
147
+ grunt . registerTask ( 'clean_license' , function ( ) {
148
+ tmp . unlinkSync ( ) ;
149
+ } ) ;
150
+
151
+ grunt . registerTask ( 'default' , [ 'minify' , 'audit' ] ) ;
152
+ grunt . registerTask ( 'minify' , [ 'gen_license' , 'concat_sourcemap' , 'uglify' , 'sourcemap_copy:polymer.concat.js.map:polymer.min.js.map' , 'clean_license' ] ) ;
136
153
grunt . registerTask ( 'docs' , [ 'yuidoc' ] ) ;
137
154
grunt . registerTask ( 'test' , [ 'override-chrome-launcher' , 'karma:polymer' ] ) ;
138
155
grunt . registerTask ( 'test-buildbot' , [ 'override-chrome-launcher' , 'karma:buildbot' ] ) ;
0 commit comments