Created by: tlvince
This crops up in the form of uglify errors during a production build, e.g. #2236 (closed), #2433 (closed), #2475 (closed). The suggestion there is to transpile deps down to ES5 and/or remove module. This is correct with respect to main, however module is there specifically to indicate ES module support, which uglify doesn't support. Therefore, ask webpack not to resolve it.
You can test this by depending on a package that ships with multiple targets i.e. main pointing to a transpiled/common JS target and module targeting ES6+, e.g. tlvince-reduced-test-case-cra-module:
src/index.js
import test from 'tlvince-reduced-test-case-cra-module'
test()
Before:
> react-scripts build
Creating an optimized production build...
Failed to compile.
static/js/main.1b21038d.js from UglifyJs
Unexpected token: punc (}) [./~/tlvince-reduced-test-case-cra-module/dist/tlvince-reduced-test-case-cra-module.es.js:1,14][static/js/main.1b21038d.js:79667,19]
After:
> react-scripts build
Creating an optimized production build...
Compiled successfully.