javascript - ¿Para qué sirve el campo "módulo" package.json?
npm (2)
¿Es
"module"una propiedad oficial de npm o es una convención de algún tipo?
Es una proposal , pero es probable que sea compatible debido al uso de facto.
¿Hay documentación para esto en alguna parte?
La hay, de hecho, y se puede encontrar aquí y luego eliminarla here .
¿Para qué sirve?
Interoperabilidad del módulo ES6 en el nodo. Discusión adicional se puede encontrar here y here . Y aquí hay una publicación de blog de Rich Harris que habla más sobre ello.
He visto que algunos paquetes npm (
vue, por ejemplo
) tienen un campo
pkg.module
en su package.json.
¿Es
"module"
una propiedad oficial de npm o es una convención de algún tipo?
¿Hay documentación para esto en alguna parte?
¿Para qué sirve?
esnext path?
¿Ruta de módulo desagrupada?
Esto lo utilizan las herramientas de agrupación para la detección de ESM (módulo ECMAScript). La documentación de Rollup lo dice bastante bien:
Si su archivo
package.jsontambién tiene un campo demodule, las herramientas compatibles con ES6 como Rollup y webpack 2 importarán directamente la versión del módulo ES6 .
Este artículo en Rollup 1.0 lo dice de otra manera:
El campo
mainse asegura de que los usuarios de Nodo que usanrequirereciban la versión UMD. El campo delmoduleno es una función npm oficial, sino una convención común entre los agrupadores para designar cómo importar una versión ESM de nuestra biblioteca.
Una discusión adicional sobre
pkg.module
está en
Rollup Github Wiki
y en el
paquete
webpack.js.org/guides/author-libraries/#final-steps
.