Skip to content

Webpack 4.x bug compiling libraries with both .js and .mjs #6289

Closed
@trxcllnt

Description

@trxcllnt

Webpack 4.x has a bug that causes it to throw ReferenceError: require is not defined at runtime when compiling projects with .js and .mjs side-by-side:

screenshot from 2019-01-27 14-46-46

This bug has been fixed in Webpack 5, and Webpack 4 has this workaround:

{
	test: /\.mjs$/,
	type: "javascript/auto",
}

From what I can tell, this was briefly how CRA handled .mjs, but was reverted a few days later via #5258.

Assuming no objections from @Timer, can CRA revert back to back to the javascript/auto configuration for Webpack 4? We can revert again once CRA is updated to Webpack 5.

Steps to Reproduce

Repro repo: https://github.com/trxcllnt/arrow-viewer/tree/cra-mjs-bug

  1. git clone -b cra-mjs-bug https://github.com/trxcllnt/arrow-viewer.git
  2. yarn && yarn start

Environment

  System:
    OS: Linux 4.18 Ubuntu 18.04.1 LTS (Bionic Beaver)
    CPU: x64 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
  Binaries:
    Node: 11.6.0 - ~/.nvm/versions/node/v11.6.0/bin/node
    Yarn: 1.13.0 - /usr/bin/yarn
    npm: 6.5.0 - ~/.nvm/versions/node/v11.6.0/bin/npm
  Browsers:
    Chrome: 71.0.3578.98
    Firefox: 64.0
  npmPackages:
    react: next => 16.8.0-alpha.1 
    react-dom: next => 16.8.0-alpha.1 
    react-scripts: next => 2.1.3-next.6a95aae9 
  npmGlobalPackages:
    create-react-app: Not Found

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions