J'ai vu des paquets npm ( voir par exemple ) avoir un champ pkg.module
dans leur package.json. "module"
est-il une propriété officielle de npm ou s'agit-il d'une convention quelconque? Existe-t-il une documentation pour cela quelque part? C'est pour quoi? esnext path? Chemin de module dégroupé?
"module"
est-il une propriété officielle de npm ou s'agit-il d'une convention quelconque?
C'est une proposition , mais susceptible d'être prise en charge en raison d'une utilisation de facto.
Existe-t-il une documentation pour cela quelque part?
Il existe, en fait, et on peut le trouver ici et plus tard supprimé ici .
C'est pour quoi?
Interopérabilité du module ES6 dans le nœud. Une discussion supplémentaire peut être trouvée ici et ici . Et voici n article de blog de Rich Harris en parle plus à ce sujet.
Ceci est utilisé par les outils de regroupement pour la détection ESM (ECMAScript Module). Le documentation cumulative le dit plutôt bien:
Si votre fichier
package.json
contient également un champmodule
, des outils compatibles avec ES6 tels que Rollup et webpack 2 vont importer le module ES6 version directement.
Cet article sur Rollup 1. le dit autrement:
Le champ
main
permet de s'assurer que Node utilisateurs utilisantrequire
recevront la version UMD. Le champmodule
n’est pas une fonctionnalité officielle de npm, mais une convention commune aux entreprises de groupement pour indiquer comment importer une version ESM de notre bibliothèque.
Une discussion plus approfondie de pkg.module
se trouve sur le Rollith Github Wiki et le webpack Docs .