]> source.dussan.org Git - jquery.git/commitdiff
Release: push a custom slim build to the CDN
authorTimmy Willison <timmywillisn@gmail.com>
Thu, 12 Nov 2015 18:18:59 +0000 (13:18 -0500)
committerTimmy Willison <timmywillisn@gmail.com>
Mon, 16 Nov 2015 16:22:20 +0000 (11:22 -0500)
Fixes gh-2653
Close gh-2711

Gruntfile.js
build/release.js
build/release/cdn.js
build/release/dist.js
build/tasks/build.js
build/tasks/dist.js
build/tasks/sourcemap.js

index dd4b07d30852a2c627d50ccaa953311be0c541bf..626531b29363f57072e290f0498bf2c0ac962d4c 100644 (file)
@@ -31,6 +31,10 @@ module.exports = function( grunt ) {
        // But our modules can
        delete srcHintOptions.onevar;
 
+       if ( !grunt.option( "filename" ) ) {
+               grunt.option( "filename", "jquery.js" );
+       }
+
        grunt.initConfig( {
                pkg: grunt.file.readJSON( "package.json" ),
                dst: readOptionalJSON( "dist/.destination.json" ),
@@ -173,12 +177,14 @@ module.exports = function( grunt ) {
                uglify: {
                        all: {
                                files: {
-                                       "dist/jquery.min.js": [ "dist/jquery.js" ]
+                                       "dist/<%= grunt.option('filename').replace('.js', '.min.js') %>":
+                                               "dist/<%= grunt.option('filename') %>"
                                },
                                options: {
                                        preserveComments: false,
                                        sourceMap: true,
-                                       sourceMapName: "dist/jquery.min.map",
+                                       sourceMapName:
+                                               "dist/<%= grunt.option('filename').replace('.js', '.min.map') %>",
                                        report: "min",
                                        beautify: {
                                                "ascii_only": true
index 5feddfa240377a9d133304c6c0f55d66221b4200..a333d05b44e83f5edfd9afafc46fabbd9fa8f590 100644 (file)
@@ -2,7 +2,14 @@
 module.exports = function( Release ) {
 
        var
-               files = [ "dist/jquery.js", "dist/jquery.min.js", "dist/jquery.min.map" ],
+               files = [
+                       "dist/jquery.js",
+                       "dist/jquery.min.js",
+                       "dist/jquery.min.map",
+                       "dist/jquery.slim.js",
+                       "dist/jquery.slim.min.js",
+                       "dist/jquery.slim.min.map"
+               ],
                cdn = require( "./release/cdn" ),
                dist = require( "./release/dist" ),
                ensureSizzle = require( "./release/ensure-sizzle" ),
@@ -27,6 +34,11 @@ module.exports = function( Release ) {
                 */
                generateArtifacts: function( callback ) {
                        Release.exec( "grunt", "Grunt command failed" );
+                       Release.exec(
+                               "grunt custom:-ajax,-effects,-deprecated --filename=jquery.slim.js && " +
+                                       "grunt remove_map_comment --filename=jquery.slim.js",
+                               "Grunt custom failed"
+                       );
                        cdn.makeReleaseCopies( Release );
                        callback( files );
                },
@@ -47,7 +59,7 @@ module.exports = function( Release ) {
                 */
                dist: function( callback ) {
                        cdn.makeArchives( Release, function() {
-                               dist( Release, callback );
+                               dist( Release, files, callback );
                        } );
                }
        } );
index 07285a56d66b834f94caea265ef06752d75b5028..3b485112e9a6f36e6bbbc81ce858f3048cd3162e 100644 (file)
@@ -5,22 +5,23 @@ var
 
        cdnFolder = "dist/cdn",
 
-       devFile = "dist/jquery.js",
-       minFile = "dist/jquery.min.js",
-       mapFile = "dist/jquery.min.map",
-
        releaseFiles = {
-               "jquery-VER.js": devFile,
-               "jquery-VER.min.js": minFile,
-               "jquery-VER.min.map": mapFile
+               "jquery-VER.js": "dist/jquery.js",
+               "jquery-VER.min.js": "dist/jquery.min.js",
+               "jquery-VER.min.map": "dist/jquery.min.map",
+               "jquery-VER.slim.js": "dist/jquery.slim.js",
+               "jquery-VER.slim.min.js": "dist/jquery.slim.min.js",
+               "jquery-VER.slim.min.map": "dist/jquery.slim.min.map"
        },
 
        googleFilesCDN = [
-               "jquery.js", "jquery.min.js", "jquery.min.map"
+               "jquery.js", "jquery.min.js", "jquery.min.map",
+               "jquery.slim.js", "jquery.slim.min.js", "jquery.slim.min.map"
        ],
 
        msFilesCDN = [
-               "jquery-VER.js", "jquery-VER.min.js", "jquery-VER.min.map"
+               "jquery-VER.js", "jquery-VER.min.js", "jquery-VER.min.map",
+               "jquery-VER.slim.js", "jquery-VER.slim.min.js", "jquery-VER.slim.min.map"
        ];
 
 /**
index 32053eafb0072c20720ab63c3490735d2849a8c9..514d407396c7b5a3b89857196732c64a99241d6d 100644 (file)
@@ -1,13 +1,16 @@
-module.exports = function( Release, complete ) {
+module.exports = function( Release, files, complete ) {
 
        var
                fs = require( "fs" ),
                shell = require( "shelljs" ),
                pkg = require( Release.dir.repo + "/package.json" ),
-               distRemote = Release.remote.replace( "jquery.git", "jquery-dist.git" ),
+               distRemote = Release.remote
+
+                       // For local and github dists
+                       .replace( /jquery(\.git|$)/, "jquery-dist$1" ),
 
                // These files are included with the distribution
-               files = [
+               extras = [
                        "src",
                        "LICENSE.txt",
                        "AUTHORS.txt",
@@ -54,17 +57,13 @@ module.exports = function( Release, complete ) {
                // Copy dist files
                var distFolder = Release.dir.dist + "/dist";
                shell.mkdir( "-p", distFolder );
-               [
-                       "dist/jquery.js",
-                       "dist/jquery.min.js",
-                       "dist/jquery.min.map"
-               ].forEach( function( file ) {
-                       shell.cp( Release.dir.repo + "/" + file, distFolder );
+               files.forEach( function( file ) {
+                       shell.cp( "-f", Release.dir.repo + "/" + file, distFolder );
                } );
 
                // Copy other files
-               files.forEach( function( file ) {
-                       shell.cp( "-r", Release.dir.repo + "/" + file, Release.dir.dist );
+               extras.forEach( function( file ) {
+                       shell.cp( "-rf", Release.dir.repo + "/" + file, Release.dir.dist );
                } );
 
                // Write generated bower file
index 74fa47fde45cd34525445fa6fa85e63e9ffdb311..c9f1daeb8f74c420d496760e5cba250facd7a7dc 100644 (file)
@@ -15,7 +15,6 @@ module.exports = function( grunt ) {
                config = {
                        baseUrl: "src",
                        name: "jquery",
-                       out: "dist/jquery.js",
 
                        // We have multiple minify steps
                        optimize: "none",
@@ -115,7 +114,7 @@ module.exports = function( grunt ) {
                        done = this.async(),
                        flags = this.flags,
                        optIn = flags[ "*" ],
-                       name = this.data.dest,
+                       name = grunt.option( "filename" ),
                        minimum = this.data.minimum,
                        removeWith = this.data.removeWith,
                        excluded = [],
@@ -205,6 +204,11 @@ module.exports = function( grunt ) {
                                }
                        };
 
+               // Filename can be passed to the command line using
+               // command line options
+               // e.g. grunt build --filename=jquery-custom.js
+               name = name ? ( "dist/" + name ) : this.data.dest;
+
                // append commit id to version
                if ( process.env.COMMIT ) {
                        version += " " + process.env.COMMIT;
index 78ce2f254e6826b382f26c927ad57d1b42f78887..fa6920c88949afd3dbeb43d3cea5e1b99a506b97 100644 (file)
@@ -2,11 +2,12 @@ module.exports = function( grunt ) {
 
        "use strict";
 
-       var fs = require( "fs" ),
+       var     fs = require( "fs" ),
+               filename = grunt.option( "filename" ),
                distpaths = [
-                       "dist/jquery.js",
-                       "dist/jquery.min.map",
-                       "dist/jquery.min.js"
+                       "dist/" + filename,
+                       "dist/" + filename.replace( ".js", ".min.map" ),
+                       "dist/" + filename.replace( ".js", ".min.js" )
                ];
 
        // Process files for distribution
index 3e4144de012472c954ff9dce40116aa0b1669a64..3f21b2afd07b1aebe39ae00051151c19a05b2e5c 100644 (file)
@@ -1,8 +1,9 @@
 var fs = require( "fs" );
 
 module.exports = function( grunt ) {
-       var minLoc = Object.keys( grunt.config( "uglify.all.files" ) )[ 0 ];
+       var config = grunt.config( "uglify.all.files" );
        grunt.registerTask( "remove_map_comment", function() {
+               var minLoc = grunt.config.process( Object.keys( config )[ 0 ] );
 
                // Remove the source map comment; it causes way too many problems.
                // The map file is still generated for manual associations