aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2013-12-19 15:00:06 -0500
committerTimmy Willison <timmywillisn@gmail.com>2013-12-19 15:00:06 -0500
commita6f474e699f95a90f95228bd525490151acc0451 (patch)
tree3fbe1cf093b7fb7fdb4df0517754b4592050632d
parent09ede3d33b1a43c399bc9549c634af634513a81d (diff)
downloadjquery-a6f474e699f95a90f95228bd525490151acc0451.tar.gz
jquery-a6f474e699f95a90f95228bd525490151acc0451.zip
Build: Add the ability to remove global exposure.
Ref #14016
-rw-r--r--README.md1
-rw-r--r--build/tasks/build.js7
-rw-r--r--src/core.js18
-rw-r--r--src/exports/global.js29
-rw-r--r--src/jquery.js8
5 files changed, 40 insertions, 23 deletions
diff --git a/README.md b/README.md
index 7cb89edce..ba18b77f9 100644
--- 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`).
diff --git a/build/tasks/build.js b/build/tasks/build.js
index 07d2942f1..d4cdd1233 100644
--- a/build/tasks/build.js
+++ b/build/tasks/build.js
@@ -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" );
diff --git a/src/core.js b/src/core.js
index 994fd4c60..6afb97685 100644
--- a/src/core.js
+++ b/src/core.js
@@ -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
index 000000000..ace2cdddd
--- /dev/null
+++ b/src/exports/global.js
@@ -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;
+
+});
diff --git a/src/jquery.js b/src/jquery.js
index ef8745c7b..46460fa96 100644
--- a/src/jquery.js
+++ b/src/jquery.js
@@ -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;
});