Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Remove workarounds for the uglify task mishandling banners when used …

…with source maps.

The issue was fixed in grunt-contrib-uglify:
gruntjs/grunt-contrib-uglify#22
  • Loading branch information...
commit d0fadbba9f1dbe2ee009be6586fbdf3cda4eff98 1 parent 85d4c01
Michał Gołębiowski mzgol authored
Showing with 11 additions and 76 deletions.
  1. +10 −29 Gruntfile.js
  2. +0 −46 build/tasks/uglify.js
  3. +1 −1  package.json
39 Gruntfile.js
View
@@ -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" ] );
};
46 build/tasks/uglify.js
View
@@ -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 );
- });
- });
-};
2  package.json
View
@@ -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",
Please sign in to comment.
Something went wrong with that request. Please try again.