Fix production JS builds compiling JSX in development mode - #8150
Merged
Conversation
Collaborator
Coverage Report for CI Build 33798899206Warning No base build found for commit Coverage: 90.693%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats💛 - Coveralls |
donny-wong
approved these changes
Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed Changes
Production webpack builds compile JSX in development mode. #8042 moved JSX to the automatic runtime. In development mode, that emits
jsxDEVcalls. Production React drops that function. The bundle then crashes on its first component. Every page loses its JavaScript after that ("Routes is not defined", empty admin Courses and Users tables). Deployed v2.10.2 instances hit this. Dev servers and Jest kept working.Cause: Babel picks its mode from the build shell's
BABEL_ENVorNODE_ENV. Webpack'smodeplays no part. Deploy hosts leave both unset, so Babel ran in development mode.Two changes:
webpack.production.jssetsBABEL_ENVplusNODE_ENVtoproductionat the top. A production build now compiles right on any host.babel.config.jsgives@babel/preset-reactan explicitdevelopmentflag. Dev and test keepjsxDEV.Verification:
jsxDEV. A headless Chromium login crashes with(0, fF.jsxDEV) is not a functionand shows zero tables.jsxDEV. The same headless login renders the course list with a clean console.window.Routesworks.Type of Change
Checklist
Before opening your pull request:
After opening your pull request:
Questions and Comments
This change is build config, so the checks above are hand-run build checks in place of unit tests. The Jest suite covers the test side of the Babel change.