mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Support CommonJS environments by accentuating the need for a window with a document. Fixes #13768.
This commit is contained in:
parent
894a6c1a6f
commit
acdcc6b6a2
@ -68,8 +68,6 @@ module.exports = function( grunt ) {
|
||||
{ flag: "offset", src: "src/offset.js", needs: ["css"] },
|
||||
{ flag: "dimensions", src: "src/dimensions.js", needs: ["css"] },
|
||||
{ flag: "deprecated", src: "src/deprecated.js" },
|
||||
|
||||
"src/exports.js",
|
||||
"src/outro.js"
|
||||
]
|
||||
}
|
||||
|
@ -1,21 +0,0 @@
|
||||
if ( typeof module === "object" && module && 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;
|
||||
|
||||
// Register as a named AMD module, since jQuery can be concatenated with other
|
||||
// files that may use define, but not via 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( "jquery", [], function () { return jQuery; } );
|
||||
}
|
||||
}
|
36
src/intro.js
36
src/intro.js
@ -11,7 +11,41 @@
|
||||
*
|
||||
* Date: @DATE
|
||||
*/
|
||||
(function( window, undefined ) {
|
||||
|
||||
(function ( window, factory ) {
|
||||
|
||||
if ( typeof module === "object" && typeof module.exports === "object" ) {
|
||||
// Expose a jQuery-making factory as module.exports in loaders that implement the Node
|
||||
// module pattern (including browserify).
|
||||
// This accentuates the need for a real window in the environment
|
||||
// e.g. var jQuery = require("jquery")(window);
|
||||
module.exports = function( w ) {
|
||||
w = w || window;
|
||||
if ( !w.document ) {
|
||||
throw new Error("jQuery requires a window with a document");
|
||||
}
|
||||
return factory( w );
|
||||
};
|
||||
} else {
|
||||
// Execute the factory to produce jQuery
|
||||
var jQuery = factory( window );
|
||||
|
||||
// Register as a named AMD module, since jQuery can be concatenated with other
|
||||
// files that may use define, but not via 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( "jquery", [], function() {
|
||||
return jQuery;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Pass this, window may not be defined yet
|
||||
}(this, function ( window, undefined ) {
|
||||
|
||||
// Can't do this because several apps including ASP.NET trace
|
||||
// the stack via arguments.caller.callee and Firefox dies if
|
||||
|
@ -1,2 +1,6 @@
|
||||
// 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);
|
||||
|
||||
})( window );
|
||||
}));
|
||||
|
Loading…
Reference in New Issue
Block a user