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.