]> source.dussan.org Git - jquery.git/commitdiff
Build: Create a `grunt custom:slim` alias for the Slim build (#4578)
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Tue, 7 Jan 2020 15:42:49 +0000 (16:42 +0100)
committerGitHub <noreply@github.com>
Tue, 7 Jan 2020 15:42:49 +0000 (16:42 +0100)
Closes gh-4578

README.md
build/release.js
build/tasks/build.js

index 104f3ecca761af709ba3e9ae7bb91a80dc47a089..9302b2f141a166bc2fad6921128edae117eaaeeb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -146,6 +146,11 @@ Exclude a bunch of modules:
 grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event/alias,-offset,-wrap
 ```
 
+There is also a special alias to generate a build with the same configuration as the official jQuery Slim build is generated:
+```bash
+grunt custom:slim
+```
+
 For questions or requests regarding custom builds, please start a thread on the [Developing jQuery Core](https://forum.jquery.com/developing-jquery-core) section of the forum. Due to the combinatorics and custom nature of these builds, they are not regularly tested in jQuery's unit test process.
 
 Running the Unit Tests
index f463d8e40f33c64f48eb2c71bd8e1d6f098cfd10..e0116d1605c183933b8e92176bb5694021c7839a 100644 (file)
@@ -50,7 +50,7 @@ module.exports = function( Release ) {
                generateArtifacts: function( callback ) {
                        Release.exec( "grunt", "Grunt command failed" );
                        Release.exec(
-                               "grunt custom:-ajax,-effects --filename=jquery.slim.js && " +
+                               "grunt custom:slim --filename=jquery.slim.js && " +
                                        "grunt remove_map_comment --filename=jquery.slim.js",
                                "Grunt custom failed"
                        );
index 4abc70868184f35c448c9995b8df490f996a1823..18d101f0bb6df5b94858debad22bb4b6868ddca7 100644 (file)
@@ -291,9 +291,27 @@ module.exports = function( grunt ) {
        // Becomes:
        //
        //   grunt build:*:*:+ajax:-dimensions:-effects:-offset
+       //
+       // There's also a special "slim" alias that resolves to the jQuery Slim build
+       // configuration:
+       //
+       //   grunt custom:slim
        grunt.registerTask( "custom", function() {
                const args = this.args;
-               const modules = args.length ? args[ 0 ].replace( /,/g, ":" ) : "";
+               const modules = args.length ?
+                       args[ 0 ]
+                               .split( "," )
+
+                               // Replace "slim" with respective exclusions meant for
+                               // the official slim build
+                               .reduce( ( acc, elem ) => acc.concat(
+                                       elem === "slim" ?
+                                               [ "-ajax", "-effects" ] :
+                                               [ elem ]
+                               ), [] )
+
+                               .join( ":" ) :
+                       "";
                const done = this.async();
                const insight = new Insight( {
                        trackingCode: "UA-1076265-4",