Les modules Node sont en guerre : CommonJS vs ESM
(redfin.engineering)CJS et ESM ont des implémentations totalement différentes. Ils peuvent s’appeler mutuellement, mais c’est pénible.
-
CJS :
require()etmodule.exports -
ESM :
importetexport
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 :
-
fournir une version CJS ;
-
fournir ensuite un thin wrapper ESM par-dessus CJS ;
-
ajouter
exportsdanspackage.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.