Fixes #14549. Execute the factory immediately when CommonJS is used in the browser.

This commit is contained in:
Timmy Willison 2013-11-15 17:18:22 -05:00
parent 6fde975259
commit 8f7db68cbf

View File

@ -15,12 +15,16 @@
(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
// For CommonJS and CommonJS-like environments where a proper window is present,
// execute the factory and get jQuery
// For environments that do not inherently posses a window with a document
// (such as Node.js), expose a jQuery-making factory as module.exports
// This accentuates the need for the creation of a real window
// e.g. var jQuery = require("jquery")(window);
module.exports = function( w ) {
w = w || window;
// See ticket #14549 for more info
module.exports = window.document ?
factory( window ) :
function( w ) {
if ( !w.document ) {
throw new Error("jQuery requires a window with a document");
}