7 points par xguru 2020-08-07 | Aucun commentaire pour le moment. | Partager sur WhatsApp

CJS et ESM ont des implémentations totalement différentes. Ils peuvent s’appeler mutuellement, mais c’est pénible.

  • CJS : require() et module.exports

  • ESM : import et export

Un article qui les compare en détail et explique jusque dans les mécanismes internes pourquoi ils sont différents et pourquoi leur interopérabilité est compliquée.

L’auteur y recommande les lignes directrices suivantes aux développeurs de bibliothèques Node :

  1. fournir une version CJS ;

  2. fournir ensuite un thin wrapper ESM par-dessus CJS ;

  3. ajouter exports dans package.json.

Bien sûr, ESM est l’approche la plus moderne, mais comme les changements sont nombreux et qu’il est plus simple de fournir un wrapper ESM au-dessus de CJS, cela semble être pour l’instant la meilleure méthode.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.