Localisation updates from https://translatewiki.net.
[mediawiki.git] / resources / src / modules.md
blob67e0991ab402e2e9940147443a0033e2bb92dc84
1 # Modules
3 Modules in MediaWiki are based on [JavaScript modules](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Modules) and are provided by
4 [ResourceLoader](https://www.mediawiki.org/wiki/Special:MyLanguage/ResourceLoader/Developing_with_ResourceLoader).
5 Modules are the preferred way to interact with the MediaWiki frontend API.
7 This section documents [stable](https://www.mediawiki.org/wiki/Special:MyLanguage/Stable_interface_policy/Frontend) modules included with MediaWiki core.
8 For information about modules defined by extensions, see the documentation for those extensions.
10 To use a module, load the module asynchronously with `mw.loader`:
12 ```js
13 mw.loader.using( 'moduleName' ).then( ( require ) => {
14   const module = require( 'moduleName' );
15   module.func();
16 } );();
17 ```
19 Or, you can list the module in your extension's [ResourceLoader module](https://www.mediawiki.org/wiki/Special:MyLanguage/ResourceLoader/Developing_with_ResourceLoader#Registering) as a dependency. For example, to use `mediawiki.util`:
21 `extension.json`
22 ```json
23 "ResourceModules": {
24     "ext.MyExtension": {
25         "localBasePath": "modules/ext.MyExtension",
26         "remoteExtPath": "MyExtension/modules/ext.MyExtension",
27         "packageFiles": [
28             "index.js"
29         ],
30         "dependencies": [
31             "mediawiki.util"
32         ]
33     }
35 ```
37 `index.js`
38 ```js
39 const module = require( 'mediawiki.util' );
40 module.clearSubtitle();
41 ```
43 ## jQuery plugins
45 MediaWiki uses the jQuery library. You can access and extend the jQuery object using plugins
46 included with MediaWiki core by loading certain ResourceLoader modules.