javascript npm package.json

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.json también tiene un campo de module , 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 main se asegura de que los usuarios de Nodo que usan require reciban la versión UMD. El campo del module no 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 .