],
],
- /* jQuery */
+ /* Base modules */
+ // These modules' dependencies MUST also be included in StartUpModule::getBaseModules().
+ // These modules' dependencies MUST be dependency-free (having dependencies would cause recursion).
'jquery' => [
'scripts' => [
],
'targets' => [ 'desktop', 'mobile' ],
],
+ 'mediawiki.base' => [
+ 'scripts' => [
+ // This MUST be kept in sync with maintenance/jsduck/eg-iframe.html
+ 'resources/src/mediawiki.base/mediawiki.errorLogger.js',
+ 'resources/src/mediawiki.base/mediawiki.base.js',
+ ],
+ 'dependencies' => 'jquery',
+ 'targets' => [ 'desktop', 'mobile' ],
+ ],
+ 'mediawiki.legacy.wikibits' => [
+ 'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
+ 'dependencies' => 'jquery',
+ 'targets' => [ 'desktop', 'mobile' ],
+ ],
/* jQuery Plugins */
],
/* MediaWiki */
-
- 'mediawiki.base' => [
- 'scripts' => [
- // This MUST be kept in sync with maintenance/jsduck/eg-iframe.html
- 'resources/src/mediawiki.base/mediawiki.errorLogger.js',
- 'resources/src/mediawiki.base/mediawiki.base.js',
- ],
- // - These dependencies MUST NOT also have dependencies (would cause recursion).
- // - These dependencies MUST also be returned from StartUpModule::getBaseModules().
- 'dependencies' => 'jquery',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
'mediawiki.apihelp' => [
'styles' => 'resources/src/mediawiki.apihelp.css',
'targets' => [ 'desktop' ],
'resources/src/mediawiki.legacy/oldshared.css' => [ 'media' => 'screen' ]
],
],
- 'mediawiki.legacy.wikibits' => [
- 'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
/* MediaWiki UI */
/**
* Queue the loading and execution of a script for a particular module.
*
+ * This does for debug mode what runScript() does for production.
+ *
* @private
* @param {string} src URL of the script
* @param {string} moduleName Name of currently executing module
*/
function queueModuleScript( src, moduleName, callback ) {
pendingRequests.push( function () {
- if ( hasOwn.call( registry, moduleName ) ) {
- // Emulate runScript() part of execute()
+ // Keep in sync with execute()/runScript().
+ if ( moduleName !== 'jquery' && hasOwn.call( registry, moduleName ) ) {
window.require = mw.loader.require;
window.module = registry[ moduleName ].module;
}
if ( Array.isArray( script ) ) {
nestedAddScript( script, markModuleReady, 0 );
} else if ( typeof script === 'function' ) {
- if ( window.$ ) {
- // Pass jQuery twice so that the signature of the closure which wraps
- // the script can bind both '$' and 'jQuery'.
- script( window.$, window.$, mw.loader.require, registry[ module ].module );
- } else {
+ // Keep in sync with queueModuleScript() for debug mode
+ if ( module === 'jquery' ) {
// This is a special case for when 'jquery' itself is being loaded.
// - The standard jquery.js distribution does not set `window.jQuery`
// in CommonJS-compatible environments (Node.js, AMD, RequireJS, etc.).
// in a CommonJS-compatible environment, will use require('jquery'),
// but that can't work when we're still inside that module.
script();
+ } else {
+ // Pass jQuery twice so that the signature of the closure which wraps
+ // the script can bind both '$' and 'jQuery'.
+ script( window.$, window.$, mw.loader.require, registry[ module ].module );
}
markModuleReady();