]> source.dussan.org Git - jquery.git/commitdiff
Support node-like module loaders. Closes gh-1103
authorisaacs <i@izs.me>
Thu, 21 Feb 2013 02:30:42 +0000 (21:30 -0500)
committerRick Waldron <waldron.rick@gmail.com>
Thu, 21 Feb 2013 02:31:06 +0000 (21:31 -0500)
src/exports.js
src/outro.js

index 88def50ba37b475d82c158024004dfd49c80e169..c535b7eefd8afed7e2a897e49f6b72a87b0763c0 100644 (file)
@@ -1,18 +1,26 @@
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
+if ( typeof module === "object" && typeof module.exports === "object" ) {
+       // Expose jQuery as module.exports in loaders that implement the Node
+       // module pattern (including browserify). Do not create the global, since
+       // the user will be storing it themselves locally, and globals are frowned
+       // upon in the Node module world.
+       module.exports = jQuery;
+} else {
+       // Otherwise expose jQuery to the global object as usual
+       window.jQuery = window.$ = jQuery;
 
-// Expose jQuery as an AMD module, but only for AMD loaders that
-// understand the issues with loading multiple versions of jQuery
-// in a page that all might call define(). The loader will indicate
-// they have special allowances for multiple jQuery versions by
-// specifying define.amd.jQuery = true. Register as a named module,
-// since jQuery can be concatenated with other files that may use define,
-// but not use a proper concatenation script that understands anonymous
-// AMD modules. A named AMD is safest and most robust way to register.
-// Lowercase jquery is used because AMD module names are derived from
-// file names, and jQuery is normally delivered in a lowercase file name.
-// Do this after creating the global so that if an AMD module wants to call
-// noConflict to hide this version of jQuery, it will work.
-if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
-       define( "jquery", [], function () { return jQuery; } );
+       // Expose jQuery as an AMD module, but only for AMD loaders that
+       // understand the issues with loading multiple versions of jQuery
+       // in a page that all might call define(). The loader will indicate
+       // they have special allowances for multiple jQuery versions by
+       // specifying define.amd.jQuery = true. Register as a named module,
+       // since jQuery can be concatenated with other files that may use define,
+       // but not use a proper concatenation script that understands anonymous
+       // AMD modules. A named AMD is safest and most robust way to register.
+       // Lowercase jquery is used because AMD module names are derived from
+       // file names, and jQuery is normally delivered in a lowercase file name.
+       // Do this after creating the global so that if an AMD module wants to call
+       // noConflict to hide this version of jQuery, it will work.
+       if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+               define( "jquery", [], function () { return jQuery; } );
+       }
 }
index ac484391c090afe5c5787b2089146ae8f1b36688..70233feb18919f071b302c96d3e0d2e50f4da9e0 100644 (file)
@@ -1,2 +1,2 @@
 
-})( window );
+})( this );