]> source.dussan.org Git - jquery.git/commitdiff
Build: Add the ability to remove global exposure.
authorTimmy Willison <timmywillisn@gmail.com>
Thu, 19 Dec 2013 20:00:06 +0000 (15:00 -0500)
committerTimmy Willison <timmywillisn@gmail.com>
Thu, 19 Dec 2013 20:00:06 +0000 (15:00 -0500)
Ref #14016

README.md
build/tasks/build.js
src/core.js
src/exports/global.js [new file with mode: 0644]
src/jquery.js

index 7cb89edce541be99d6bbe7fa33b64e57d7a1d705..ba18b77f99031873bf134dd210118b0a135d6ea7 100644 (file)
--- a/README.md
+++ b/README.md
@@ -84,6 +84,7 @@ Some example modules that can be excluded are:
 - **offset**: The `.offset()`, `.position()`, `.offsetParent()`, `.scrollLeft()`, and `.scrollTop()` methods.
 - **wrap**: The `.wrap()`, `.wrapAll()`, `.wrapInner()`, and `.unwrap()` methods.
 - **exports/amd**: Exclude the AMD definition.
+- **exports/global**: Exclude the attachment of global jQuery variables ($ and jQuery) to the window.
 - **core/ready**: Exclude the ready module if you place your scripts at the end of the body. Any ready callbacks bound with `jQuery()` will simply be called immediately. However, `jQuery(document).ready()` will not be a function and `.on("ready", ...)` or similar will not be triggered.
 - **deferred**: Exclude jQuery.Deferred. This also removes jQuery.Callbacks. *Note* that modules that depend on jQuery.Deferred(AJAX, effects, core/ready) will not be removed and will still expect jQuery.Deferred to be there. Include your own jQuery.Deferred implementation or exclude those modules as well (`grunt custom:-deferred,-ajax,-effects,-core/ready`).
 
index 07d2942f1443b7b13723b63dc269fda4a1a97d03..d4cdd12335ed6fcb66d11a767572526c09b7eaf9 100644 (file)
@@ -196,6 +196,13 @@ module.exports = function( grunt ) {
                        excluded.splice( index, 1 );
                }
 
+               // Replace exports/global with a noop noConflict
+               if ( (index = excluded.indexOf( "exports/global" )) > -1 ) {
+                       config.rawText[ "exports/global" ] = "define(['../core']," +
+                               "function( jQuery ) {\njQuery.noConflict = function() {};\n});";
+                       excluded.splice( index, 1 );
+               }
+
                grunt.verbose.writeflags( excluded, "Excluded" );
                grunt.verbose.writeflags( included, "Included" );
 
index 994fd4c6068018296e31f925cf78f564a85ddc21..6afb97685fe9c8e4712bb71b4880046822fb88b5 100644 (file)
@@ -15,12 +15,6 @@ var
        // Use the correct document accordingly with window argument (sandbox)
        document = window.document,
 
-       // Map over jQuery in case of overwrite
-       _jQuery = window.jQuery,
-
-       // Map over the $ in case of overwrite
-       _$ = window.$,
-
        version = "@VERSION",
 
        // Define a local copy of jQuery
@@ -202,18 +196,6 @@ jQuery.extend({
 
        noop: function() {},
 
-       noConflict: function( deep ) {
-               if ( window.$ === jQuery ) {
-                       window.$ = _$;
-               }
-
-               if ( deep && window.jQuery === jQuery ) {
-                       window.jQuery = _jQuery;
-               }
-
-               return jQuery;
-       },
-
        // See test/unit/core.js for details concerning isFunction.
        // Since version 1.3, DOM methods and functions like alert
        // aren't supported. They return false on IE (#2968).
diff --git a/src/exports/global.js b/src/exports/global.js
new file mode 100644 (file)
index 0000000..ace2cdd
--- /dev/null
@@ -0,0 +1,29 @@
+define([
+       "../core"
+], function( jQuery ) {
+
+var
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+
+       // Map over the $ in case of overwrite
+       _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+       if ( window.$ === jQuery ) {
+               window.$ = _$;
+       }
+
+       if ( deep && window.jQuery === jQuery ) {
+               window.jQuery = _jQuery;
+       }
+
+       return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in
+// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+window.jQuery = window.$ = jQuery;
+
+});
index ef8745c7bdd9d649ffc4bcf3c928d71502582fea..46460fa965821db145e8f6a4040933f64d0dfb87 100644 (file)
@@ -27,12 +27,10 @@ define([
        "./offset",
        "./dimensions",
        "./deprecated",
-       "./exports/amd"
+       "./exports/amd",
+       "./exports/global"
 ], function( jQuery ) {
 
-// Expose jQuery and $ identifiers, even in
-// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
-// and CommonJS for browser emulators (#13566)
-return (window.jQuery = window.$ = jQuery);
+return jQuery;
 
 });