resource loader; 1.32 alpha; 1.32 stable breaking change loading scripts in widgets

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

resource loader; 1.32 alpha; 1.32 stable breaking change loading scripts in widgets

Tom Schulze-2
dear all,

i experienced breaking changes when loading scripts in the widgets
extension through the resource loader. please check the gitlab snippet
[1] i created. i did not find any documentation and checked the
migration guide [2].

is the code presented in the gitlab snippet good practice? could anyone
point me to existing documentation?

thank you!

tom

[1] https://gitlab.com/snippets/1843172

[2]
https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_(users)#MediaWiki_1.32_(TBA)



_______________________________________________
Wikitech-l mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Reply | Threaded
Open this post in threaded view
|

Re: resource loader; 1.32 alpha; 1.32 stable breaking change loading scripts in widgets

Bartosz Dziewoński
Best practice is to use the PHP methods which generate the required
wrappers. Have a look at ResourceLoader::makeLoaderConditionalScript()
and ResourceLoader::makeInlineCodeWithModule().

Alternatively, if it's possible, it is ideal to put the initialization
code into another module and load it with addMobules() etc. as usual,
instead of inlining the code in the HTML source.

--
Bartosz Dziewoński

_______________________________________________
Wikitech-l mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Reply | Threaded
Open this post in threaded view
|

Re: resource loader; 1.32 alpha; 1.32 stable breaking change loading scripts in widgets

bawolff
I don't know if its best practise to do this, but core seems to do:

(window.RLQ=window.RLQ||[]).push(function () {
mw.loader.using('ext.myextension').then(function(){
console.log('library loaded');    }); });

You probably don't have many other options if you are using the Widgets
extension.

--
Brian

On Thu, Apr 4, 2019 at 4:08 PM Bartosz Dziewoński <[hidden email]>
wrote:

> Best practice is to use the PHP methods which generate the required
> wrappers. Have a look at ResourceLoader::makeLoaderConditionalScript()
> and ResourceLoader::makeInlineCodeWithModule().
>
> Alternatively, if it's possible, it is ideal to put the initialization
> code into another module and load it with addMobules() etc. as usual,
> instead of inlining the code in the HTML source.
>
> --
> Bartosz Dziewoński
>
> _______________________________________________
> Wikitech-l mailing list
> [hidden email]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l