This is used by bundler tools for ESM (ECMAScript Module) detection. The Rollup documentation says it pretty well:
If your
package.jsonfile also has amodulefield, ES6-aware tools like Rollup and webpack 2 will import the ES6 module version directly.
This article on Rollup 1.0 says it another way:
The
mainfield makes sure that Node users usingrequirewill be served the UMD version. Themodulefield is not an official npm feature but a common convention among bundlers to designate how to import an ESM version of our library.
Further discussion of pkg.module is on the Rollup Github Wiki and the webpack Docs.