]> source.dussan.org Git - jquery.git/commitdiff
Remove workarounds for the uglify task mishandling banners when used with source...
authorMichał Gołębiowski <m.goleb@gmail.com>
Sat, 9 Nov 2013 22:12:06 +0000 (23:12 +0100)
committerMichał Gołębiowski <m.goleb@gmail.com>
Sat, 9 Nov 2013 22:12:06 +0000 (23:12 +0100)
The issue was fixed in grunt-contrib-uglify:
https://github.com/gruntjs/grunt-contrib-uglify/issues/22

Gruntfile.js
build/tasks/uglify.js [deleted file]
package.json

index a341600c622ca5a1c8de4f7e138d8b1908aa5126..ccbf5301a5a761636a688cced962f850fe241b13 100644 (file)
@@ -5,7 +5,7 @@ module.exports = function( grunt ) {
                var data = {};
                try {
                        data = grunt.file.readJSON( filepath );
-               } catch(e) {}
+               } catch ( e ) {}
                return data;
        }
 
@@ -17,8 +17,8 @@ module.exports = function( grunt ) {
        delete srcHintOptions.onevar;
 
        grunt.initConfig({
-               pkg: grunt.file.readJSON("package.json"),
-               dst: readOptionalJSON("dist/.destination.json"),
+               pkg: grunt.file.readJSON( "package.json" ),
+               dst: readOptionalJSON( "dist/.destination.json" ),
                compare_size: {
                        files: [ "dist/jquery.js", "dist/jquery.min.js" ],
                        options: {
@@ -89,39 +89,28 @@ module.exports = function( grunt ) {
                        tasks: "build/tasks/*.js"
                },
                testswarm: {
-                       tests: "ajax attributes callbacks core css data deferred dimensions effects event manipulation offset queue selector serialize support traversing Sizzle".split(" ")
+                       tests: "ajax attributes callbacks core css data deferred dimensions effects event manipulation offset queue selector serialize support traversing Sizzle".split( " " )
                },
                watch: {
                        files: [ "<%= jshint.grunt.src %>", "<%= jshint.tests.src %>", "src/**/*.js" ],
                        tasks: "dev"
                },
-               "pre-uglify": {
-                       all: {
-                               files: {
-                                       "dist/jquery.pre-min.js": [ "dist/jquery.js" ]
-                               },
-                               options: {
-                                       banner: "\n\n\n\n\n\n\n\n\n\n\n\n" + // banner line size must be preserved
-                                               "/*! jQuery v<%= pkg.version %> | " +
-                                               "(c) 2005, 2013 jQuery Foundation, Inc. | " +
-                                               "jquery.org/license */\n"
-                               }
-                       }
-               },
                uglify: {
                        all: {
                                files: {
-                                       "dist/jquery.min.js": [ "dist/jquery.pre-min.js" ]
+                                       "dist/jquery.min.js": [ "dist/jquery.js" ]
                                },
                                options: {
-                                       // Keep our hard-coded banner
-                                       preserveComments: "some",
+                                       preserveComments: false,
                                        sourceMap: "dist/jquery.min.map",
                                        sourceMappingURL: "jquery.min.map",
                                        report: "min",
                                        beautify: {
                                                ascii_only: true
                                        },
+                                       banner: "/*! jQuery v<%= pkg.version %> | " +
+                                               "(c) 2005, 2013 jQuery Foundation, Inc. | " +
+                                               "jquery.org/license */",
                                        compress: {
                                                hoist_funs: false,
                                                loops: false,
@@ -129,14 +118,6 @@ module.exports = function( grunt ) {
                                        }
                                }
                        }
-               },
-               "post-uglify": {
-                       all: {
-                               src: [ "dist/jquery.min.map" ],
-                               options: {
-                                       tempFiles: [ "dist/jquery.pre-min.js" ]
-                               }
-                       }
                }
        });
 
@@ -150,5 +131,5 @@ module.exports = function( grunt ) {
        grunt.registerTask( "dev", [ "build:*:*", "jshint", "jscs" ] );
 
        // Default grunt
-       grunt.registerTask( "default", [ "jsonlint", "dev", "pre-uglify", "uglify", "post-uglify", "dist:*", "compare_size" ] );
+       grunt.registerTask( "default", [ "jsonlint", "dev", "uglify", "dist:*", "compare_size" ] );
 };
diff --git a/build/tasks/uglify.js b/build/tasks/uglify.js
deleted file mode 100644 (file)
index f8df5e7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-module.exports = function( grunt ) {
-
-       "use strict";
-
-       var fs = require( "fs" );
-
-       // Work around grunt-contrib-uglify sourceMap issues (jQuery #13776)
-       grunt.registerMultiTask( "pre-uglify", function() {
-               var banner = this.options().banner;
-
-               this.files.forEach(function( mapping ) {
-                       // Join src
-                       var input = mapping.src.map(function( file ) {
-                               var contents = grunt.file.read( file );
-
-                               // Strip banners
-                               return contents
-                                       // Remove the main jQuery banner, it'll be replaced by the new banner anyway.
-                                       .replace( /^\/\*![\W\w]*?\*\/\n?/g, "" )
-                                       // Strip other banners preserving line count.
-                                       .replace( /^\/\*!(?:.|\n)*?\*\/\n?/gm, function( match ) {
-                                               return match.replace( /[^\n]/gm, "" );
-                                       });
-                       }).join( "\n" );
-
-                       // Write temp file (with optional banner)
-                       grunt.file.write( mapping.dest, ( banner || "" ) + input );
-               });
-       });
-
-       // Change the map file to point back to jquery.js instead of jquery.pre-min.js.
-       // The problem is caused by the pre-uglify task.
-       grunt.registerMultiTask( "post-uglify", function() {
-               this.files.forEach(function( mapping ) {
-                       mapping.src.forEach( function( src ) {
-                               // Refer to the source jquery.js, not the temporary jquery.pre-min.js.
-                               grunt.file.write( src, grunt.file.read( src ).replace( /\.pre-min\./g, "." ) );
-                       });
-               });
-
-               // Remove temporary files.
-               this.options().tempFiles.forEach(function( fileName ) {
-                       fs.unlink( fileName );
-               });
-       });
-};
index 09421ebe9f2704a5439a9a241934ca03ad324f06..93b42b4d84b6e71f58c921911728db9f930c603a 100644 (file)
@@ -32,7 +32,7 @@
     "grunt": "~0.4.1",
     "grunt-compare-size": "~0.4.0",
     "grunt-contrib-jshint": "~0.7.0",
-    "grunt-contrib-uglify": "~0.2.4",
+    "grunt-contrib-uglify": "~0.2.7",
     "grunt-contrib-watch": "~0.5.3",
     "grunt-git-authors": "~1.2.0",
     "grunt-jscs-checker": "~0.2.3",