Do you want to request a feature or report a bug?
What is the current behavior?
require a package with a
module field in its package.json, and the module has an
export default, the
require call does not return the default export like it should.
Instead, it returns an object with
Both of these forms will return the default export:
const merge = require('deepmerge').default
import merge from 'deepmerge'
If the current behavior is a bug, please provide the steps to reproduce.
Reproduction at https://github.com/perry-mitchell/repo-deepmerge-webpack
What is the expected behavior?
require('any-esm-module') should return the default export.
For many Webpack users,
require('any-esm-module').default is not even an option, since they are importing a package that depends on some CJS/ESM module (like deepmerge).
Please mention other relevant information such as the browser version, Node.js version, webpack version, and Operating System.
Tested with Webpack 3.11.0 and 4.0.0.
Edit: per the discussion below, my original report above is incorrect.
What should probably happen:
require('my-module') should import the
browser) entry point in the package.json file.
What happens now:
require('my-module') imports the
module entry point in the package.json file.