Skip to content
Permalink
Browse files

Support node-like module loaders. Closes gh-1103

  • Loading branch information...
isaacs authored and rwaldron committed Feb 21, 2013
1 parent 0f977e6 commit a128355b25dc31a1312e4e190b9e3caec5f0b95b
Showing with 25 additions and 17 deletions.
  1. +24 −16 src/exports.js
  2. +1 −1 src/outro.js
@@ -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; } );
}
}
@@ -1,2 +1,2 @@

})( window );
})( this );

2 comments on commit a128355

@Krinkle

This comment has been minimized.

Copy link
Member

Krinkle replied Feb 21, 2013

broke the build 😜

Running "jshint:dist" (jshint) task
Linting dist/jquery.js...ERROR
[L8685:C43] 'module' is not defined.
if ( typeof module === "object" && typeof module.exports === "object" ) {
[L8690:C5] 'module' is not defined.
     module.exports = jQuery;

Add /*global module */.

@rwaldron

This comment has been minimized.

Copy link
Member

rwaldron replied Feb 21, 2013

Of course it did... I assumed everything was in proper order. Thanks for the heads up

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.