Module JS

On ne sait jamais, vous pourriez avoir envie d’utiliser des scripts javascript via le système de module (import/export), plutôt qu’avec la façon historique.

Ça fonctionne très bien avec Dotclear, je viens de tester, mais il faut savoir tout de même qu’on ne peut mélanger des modules et des non-modules, ce qui limite forcément l’intérêt avec Dotclear qui est farci, pour l’instant, de scripts ordinaires.

Un exemple avec le plugin notifyMe pour lequel j’ai ajouté une copie du fichier js/notify.js sous le nom js/notify.mjs 1 et auquel j’ai ajouté une ligne au début :

export { notifyBrowser };

La suite étant identique au fichier copié.

Après, création d’un petit fichier de test dans mon plugin de … test avec ce contenu :

import { notifyBrowser } from './index.php?pf=notifyMe/js/notify.mjs';

// Dom ready
window.addEventListener('load', () => {
  notifyBrowser('Et voilà !');
});

Voire si vous voulez faire ça en mode asynchrone :

// Dom ready
window.addEventListener('load', async () => {
  const notifyMe = await import('./index.php?pf=notifyMe/js/notify.mjs');
  await notifyMe.notifyBrowser('Async');
});

Voilà, Ça juste marche 2.


  1. J’ai ajouté de quoi charger des fichiers mjs dans la prochaine 2.25. ↩︎

  2. Expression prisée par un cador du CSS, Gaël Poupard↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15598

Haut de page