Skip to content

fix: anonymous default export name fix-up in ES5 environment#20796

Merged
alexander-akait merged 1 commit intomainfrom
fix/anonymous-default-export-es5-regression
Apr 10, 2026
Merged

fix: anonymous default export name fix-up in ES5 environment#20796
alexander-akait merged 1 commit intomainfrom
fix/anonymous-default-export-es5-regression

Conversation

@xiaoxiaojx
Copy link
Copy Markdown
Member

Summary
Fixes #20793

What kind of change does this PR introduce?
fix

Did you add tests for your changes?
Yes

Does this PR introduce a breaking change?
No

If relevant, what needs to be documented once your changes are merged or what have you already documented?
Nothing

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 9, 2026

🦋 Changeset detected

Latest commit: bf96964

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
webpack Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@xiaoxiaojx xiaoxiaojx marked this pull request as draft April 9, 2026 04:53
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 9, 2026

This PR is packaged and the instant preview is available (f8d274b).

Install it locally:

  • npm
npm i -D webpack@https://pkg.pr.new/webpack@f8d274b
  • yarn
yarn add -D webpack@https://pkg.pr.new/webpack@f8d274b
  • pnpm
pnpm add -D webpack@https://pkg.pr.new/webpack@f8d274b

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.38%. Comparing base (e370b76) to head (bf96964).
⚠️ Report is 1 commits behind head on main.

❌ Your changes status has failed because you have indirect coverage changes. Learn more about Unexpected Coverage Changes and reasons for indirect coverage changes.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #20796   +/-   ##
=======================================
  Coverage   91.38%   91.38%           
=======================================
  Files         560      560           
  Lines       55298    55299    +1     
  Branches    14595    14595           
=======================================
+ Hits        50533    50536    +3     
+ Misses       4765     4763    -2     
Flag Coverage Δ
integration 90.38% <100.00%> (+<0.01%) ⬆️
test262 41.96% <33.33%> (-0.01%) ⬇️
unit 36.16% <0.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@xiaoxiaojx xiaoxiaojx force-pushed the fix/anonymous-default-export-es5-regression branch from d81d701 to d4c707d Compare April 9, 2026 05:15
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 9, 2026

Merging this PR will degrade performance by 89.27%

⚡ 4 improved benchmarks
❌ 4 regressed benchmarks
✅ 136 untouched benchmarks

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Memory benchmark "json-modules", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 412.7 KB 993 KB -58.43%
Memory benchmark "asset-modules-resource", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 996.7 KB 732.1 KB +36.15%
Memory benchmark "concatenate-modules", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 776.3 KB 555.2 KB +39.82%
Memory benchmark "lodash", scenario '{"name":"mode-development","mode":"development"}' 5.3 MB 4.1 MB +29.1%
Memory benchmark "asset-modules-source", scenario '{"name":"mode-development","mode":"development"}' 660.9 KB 919.3 KB -28.11%
Memory benchmark "asset-modules-source", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 339.3 KB 263.5 KB +28.75%
Memory benchmark "asset-modules-inline", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 734.6 KB 6,849.5 KB -89.27%
Memory benchmark "many-modules-esm", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 298 KB 806.5 KB -63.05%

Comparing fix/anonymous-default-export-es5-regression (bf96964) with main (e370b76)

Open in CodSpeed

justin808 added a commit to shakacode/react_on_rails that referenced this pull request Apr 9, 2026
webpack 5.106.0 (released 2026-04-08) introduces a codegen bug where
anonymous default exports generate a reference to __WEBPACK_DEFAULT_EXPORT__
without declaring it when output.environment.const is false. This causes
ReferenceError at runtime in ExecJS-based SSR.

Upstream bug: webpack/webpack#20793
Upstream fix (draft): webpack/webpack#20796

Pin webpack <5.106.0 in all three dummy app package.json files and add
a pnpm override as a safety net across all workspaces.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@xiaoxiaojx xiaoxiaojx force-pushed the fix/anonymous-default-export-es5-regression branch from d4c707d to 05a2502 Compare April 9, 2026 05:27
@xiaoxiaojx xiaoxiaojx marked this pull request as ready for review April 9, 2026 05:32
@xiaoxiaojx xiaoxiaojx marked this pull request as draft April 9, 2026 05:48
When `output.environment.const` is false and the default export slot is
used, the harmony default export template assigns directly to
`__webpack_exports__["default"]` without declaring any local
`__WEBPACK_DEFAULT_EXPORT__` binding. The anonymous-default `.name`
fix-up introduced in #20773 still referenced that undeclared binding,
causing a `ReferenceError` at module load time.

Also replaces `Reflect.*` with `Object.*` so the emitted code does not
depend on ES2015 `Reflect` in ES5 target runtimes, and guards against
an undefined descriptor so Node 10 (and other legacy V8 versions that
do not set an own `name` property on anonymous class expressions
assigned to a MemberExpression) does not throw.

Adds regression tests covering anonymous arrow / async arrow / class /
class-extends default exports under ES5 environment, plus an anonymous
function default export under module concatenation.

Fixes #20793
@xiaoxiaojx xiaoxiaojx force-pushed the fix/anonymous-default-export-es5-regression branch from 8411f22 to bf96964 Compare April 9, 2026 06:16
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 9, 2026

Types Coverage

Coverage after merging fix/anonymous-default-export-es5-regression into main will be
98.93%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
bin
   webpack.js98.77%100%100%98.77%91
examples
   build-common.js100%100%100%100%
   buildAll.js100%100%100%100%
   examples.js100%100%100%100%
   template-common.js98.21%100%100%98.21%72
examples/custom-javascript-parser
   test.filter.js100%100%100%100%
examples/custom-javascript-parser/internals
   acorn-parse.js100%100%100%100%
   meriyah-parse.js100%100%100%100%
   oxc-parse.js91.30%100%100%91.30%140, 142–143, 145, 147, 153–154, 161, 168, 90
examples/markdown
   webpack.config.mjs100%100%100%100%
examples/typescript
   test.filter.js50%100%100%50%5
examples/virtual-modules
   test.filter.js100%100%100%100%
examples/wasm-bindgen-esm
   test.filter.js100%100%100%100%
examples/wasm-complex
   test.filter.js100%100%100%100%
examples/wasm-simple
   test.filter.js100%100%100%100%
examples/wasm-simple-source-phase
   test.filter.js100%100%100%100%
lib
   APIPlugin.js100%100%100%100%
   AbstractMethodError.js100%100%100%100%
   AsyncDependenciesBlock.js100%100%100%100%
   AsyncDependencyToInitialChunkError.js100%100%100%100%
   AutomaticPrefetchPlugin.js100%100%100%100%
   BannerPlugin.js100%100%100%100%
   Cache.js98.21%100%100%98.21%87
   CacheFacade.js100%100%100%100%
   CaseSensitiveModulesWarning.js100%100%100%100%
   Chunk.js99.72%100%100%99.72%37
   ChunkGraph.js100%100%100%100%
   ChunkGroup.js100%100%100%100%
   ChunkRenderError.js100%100%100%100%
   ChunkTemplate.js100%100%100%100%
   CleanPlugin.js98.72%100%100%98.72%196, 216, 371
   CodeGenerationError.js100%100%100%100%
   CodeGenerationResults.js100%100%100%100%
   CommentCompilationWarning.js100%100%100%100%
   CompatibilityPlugin.js100%100%100%100%
   Compilation.js98.55%100%100%98.55%1511, 1800, 1807, 1815, 1837, 2713, 3131, 3779, 3808, 3860–3861, 3865, 3870, 3886–3887, 3901–3902, 3907–3908, 4370, 4396, 470, 475, 5091, 5171, 5186, 5211–5212, 5214, 5530, 5535, 5541, 5544, 5556, 5558, 5562, 5578, 5593, 5624, 5678, 5702, 5812, 681–682
   Compiler.js99.56%100%100%99.56%1091–1092, 1100
   ConcatenationScope.js98.59%100%100%98.59%166
   ConcurrentCompilationError.js100%100%100%100%
   ConditionalInitFragment.js100%100%100%100%
   ConstPlugin.js100%100%100%100%
   ContextExclusionPlugin.js100%100%100%100%
   ContextModule.js100%100%100%100%
   ContextModuleFactory.js97.75%100%100%97.75%253, 385, 410, 435, 439, 450
   ContextReplacementPlugin.js100%100%100%100%
   CssModule.js81.32%100%100%81.32%152, 157–172
   DefinePlugin.js98.92%100%100%98.92%153–154, 170, 189, 263
   DelegatedModule.js95.24%100%100%95.24%240–244
   DelegatedModuleFactoryPlugin.js98.15%100%100%98.15%103
   DelegatedPlugin.js100%100%100%100%
   DependenciesBlock.js100%100%100%100%
   Dependency.js98.13%100%100%98.13%351, 381
   DependencyTemplate.js100%100%100%100%
   DependencyTemplates.js100%100%100%100%
   DllEntryPlugin.js100%100%100%100%
   DllModule.js100%100%100%100%
   DllModuleFactory.js100%100%100%100%
   DllPlugin.js100%100%100%100%
   DllReferencePlugin.js100%100%100%100%
   DotenvPlugin.js97.88%100%100%97.88%235, 375, 388–389
   DynamicEntryPlugin.js100%100%100%100%
   EntryOptionPlugin.js100%100%100%100%
   EntryPlugin.js100%100%100%100%
   Entrypoint.js100%100%100%100%
   EnvironmentNotSupportAsyncWarning.js100%100%100%100%
   EnvironmentPlugin.js97.14%100%100%97.14%48
   ErrorHelpers.js100%100%100%100%
   EvalDevToolModulePlugin.js100%100%100%100%
   EvalSourceMapDevToolPlugin.js100%100%100%100%
   ExportsInfo.js100%100%100%100%
   ExportsInfoApiPlugin.js100%100%100%100%
   ExternalModule.js98.89%100%100%98.89%385–389, 526
   ExternalModuleFactoryPlugin.js100%100%100%100%
   ExternalsPlugin.js100%100%100%100%
   FalseIIFEUmdWarning.js100%100%100%100%
   FileSystemInfo.js99.49%100%100%99.49%168, 2142–2143, 2146, 2157, 2168, 2179, 261, 3497, 3512, 3536
   FlagAllModulesAsUsedPlugin.js100%100%100%100%
   FlagDependencyExportsPlugin.js98.74%100%100%98.74%396, 398, 402
   FlagDependencyUsagePlugin.js100%100%100%100%
   FlagEntryExportAsUsedPlugin.js100%100%100%100%
   Generator.js100%100%100%100%
   GraphHelpers.js100%100%100%100%
   HarmonyLinkingError.js100%100%100%100%
   HookWebpackError.js100%100%100%100%
   HotModuleReplacementPlugin.js100%100%100%100%
   HotUpdateChunk.js100%100%100%100%
   IgnoreErrorModuleFactory.js100%100%100%100%
   IgnorePlugin.js100%100%100%100%
   IgnoreWarningsPlugin.js100%100%100%100%
   InitFragment.js100%100%100%100%
   InvalidDependenciesModuleWarning.js100%100%100%100%
   JavascriptMetaInfoPlugin.js100%100%100%100%
   LibManifestPlugin.js97.14%100%100%97.14%114, 117
   LibraryTemplatePlugin.js100%100%100%100%
   LoaderOptionsPlugin.js100%100%100%100%
   LoaderTargetPlugin.js100%100%100%100%
   MainTemplate.js100%100%100%100%
   ManifestPlugin.js100%100%100%100%
   Module.js98.50%100%100%98.50%1233, 1238, 1296, 1309, 1366, 1374
   ModuleBuildError.js100%100%100%100%
   ModuleDependencyError.js100%100%100%100%
   ModuleDependencyWarning.js100%100%100%100%
   ModuleError.js100%100%100%100%
   ModuleFactory.js100%100%100%100%
   ModuleFilenameHelpers.js98.85%100%100%98.85%105, 107
   ModuleGraph.js99.73%100%100%99.73%942
   ModuleGraphConnection.js100%100%100%100%
   ModuleHashingError.js100%100%100%100%
   ModuleInfoHeaderPlugin.js100%100%100%100%
   ModuleNotFoundError.js100%100%100%100%
   ModuleParseError.js100%100%100%100%
   ModuleProfile.js100%100%100%100%
   ModuleRestoreError.js100%100%100%100%
   ModuleSourceTypeConstants.js100%100%100%100%
   ModuleStoreError.js100%100%100%100%
   ModuleTemplate.js100%100%100%100%
   ModuleTypeConstants.js100%100%100%100%
   ModuleWarning.js100%100%100%100%
   MultiCompiler.js99.69%100%100%99.69%619
   MultiStats.js100%100%100%100%
   MultiWatching.js100%100%100%100%
   NoEmitOnErrorsPlugin.js100%100%100%100%
   NoModeWarning.js100%100%100%100%
   NodeStuffInWebError.js100%100%100%100%
   NodeStuffPlugin.js100%100%100%100%
   NormalModule.js97.78%100%100%97.78%1032, 1048, 1135, 1765, 1770–1780, 214, 722, 740, 757, 998
   NormalModuleFactory.js99.47%100%100%99.47%1051, 1356, 452, 464
   NormalModuleReplacementPlugin.js100%100%100%100%
   NullFactory.js100%100%100%100%
   OptimizationStages.js100%100%100%100%
   OptionsApply.js100%100%100%100%
   Parser.js100%100%100%100%
   PlatformPlugin.js100%100%100%100%
   PrefetchPlugin.js100%100%100%100%
   ProgressPlugin.js98.75%100%100%98.75%431–432, 437, 439, 503
   ProvidePlugin.js100%100%100%100%
   RawModule.js100%100%100%100%
   RecordIdsPlugin.js100%100%100%100%
   RequestShortener.js100%100%100%100%
   RequireJsStuffPlugin.js100%100%100%100%
   ResolverFactory.js100%100%100%100%
   RuntimeGlobals.js100%100%100%100%
   RuntimeModule.js100%100%100%100%
   RuntimePlugin.js100%100%100%100%
   RuntimeTemplate.js100%100%100%100%
   SelfModuleFactory.js100%100%100%100%
   SingleEntryPlugin.js100%100%100%100%
   SizeFormatHelpers.js100%100%100%100%
   SourceMapDevToolModuleOptionsPlugin.js100%100%100%100%
   SourceMapDevToolPlugin.js99.16%100%100%99.16%265–266, 608
   Stats.js100%100%100%100%
   Template.js100%100%100%100%
   TemplatedPathPlugin.js98.85%100%100%98.85%128–129
   UnhandledSchemeError.js100%100%100%100%
   UnsupportedFeatureWarning.js100%100%100%100%
   UseStrictPlugin.js100%100%100%100%
   WarnCaseSensitiveModulesPlugin.js100%100%100%100%
   WarnDeprecatedOptionPlugin.js100%100%100%100%
   WarnNoModeSetPlugin.js100%100%100%100%
   WatchIgnorePlugin.js100%100%100%100%
   Watching.js100%100%100%100%
   WebpackError.js96.97%100%100%96.97%43
   WebpackIsIncludedPlugin.js100%100%100%100%
   WebpackOptionsApply.js100%100%100%100%
   WebpackOptionsDefaulter.js100%100%100%100%
   buildChunkGraph.js99.87%100%100%99.87%317
   cli.js98.71%100%100%98.71%109, 453, 485, 527, 787
   formatLocation.js100%100%100%100%
   index.js100%100%100%100%
   validateSchema.js94.67%100%100%94.67%86, 88, 97, 99
   webpack.js97.22%100%100%97.22%186, 208, 210
lib/asset
   AssetBytesGenerator.js100%100%100%100%
   AssetBytesParser.js100%100%100%100%
   AssetGenerator.js100%100%100%100%
   AssetModulesPlugin.js97.77%100%100%97.77%282, 306, 309, 361, 39
   AssetParser.js100%100%100%100%
   AssetSourceGenerator.js100%100%100%100%
   AssetSourceParser.js100%100%100%100%
   RawDataUrlModule.js100%100%100%100%
lib/async-modules
   AsyncModuleHelpers.js100%100%100%100%
   AwaitDependenciesInitFragment.js100%100%100%100%
   InferAsyncModulesPlugin.js100%100%100%100%
lib/cache
   AddBuildDependenciesPlugin.js100%100%100%100%
   AddManagedPathsPlugin.js100%100%100%100%
   IdleFileCachePlugin.js97.92%100%100%97.92%70, 82, 90
   MemoryCachePlugin.js95.83%100%100%95.83%33
   MemoryWithGcCachePlugin.js93.15%100%100%93.15%104, 111–112, 120, 87
   PackFileCacheStrate

@xiaoxiaojx xiaoxiaojx marked this pull request as ready for review April 9, 2026 06:44
@alexander-akait alexander-akait merged commit f8d274b into main Apr 10, 2026
96 of 98 checks passed
@alexander-akait alexander-akait deleted the fix/anonymous-default-export-es5-regression branch April 10, 2026 10:05
justin808 added a commit to shakacode/react_on_rails that referenced this pull request Apr 12, 2026
webpack 5.106.0 (released 2026-04-08) introduces a codegen bug where
anonymous default exports generate a reference to __WEBPACK_DEFAULT_EXPORT__
without declaring it when output.environment.const is false. This causes
ReferenceError at runtime in ExecJS-based SSR.

Upstream bug: webpack/webpack#20793
Upstream fix (draft): webpack/webpack#20796

Pin webpack <5.106.0 in all three dummy app package.json files and add
a pnpm override as a safety net across all workspaces.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
justin808 added a commit to shakacode/react_on_rails that referenced this pull request Apr 13, 2026
## Summary

- **webpack 5.106.0** (released 2026-04-08) introduces a codegen bug in
anonymous default exports that causes `ReferenceError:
__WEBPACK_DEFAULT_EXPORT__ is not defined` at runtime in ExecJS-based
SSR
- Upstream bug: webpack/webpack#20793
- Upstream fix (draft): webpack/webpack#20796

### Changes

- Cap webpack `<5.106.0` in all three dummy app `package.json` files:
- `react_on_rails/spec/dummy/package.json`: `^5.104.1` → `>=5.76.0
<5.106.0`
- `react_on_rails_pro/spec/dummy/package.json`: `5` → `>=5.0.0 <5.106.0`
- `react_on_rails_pro/spec/execjs-compatible-dummy/package.json`: `5` →
`>=5.0.0 <5.106.0`
- Add pnpm override in root `package.json` as a safety net across all
workspaces
- Updated `pnpm-lock.yaml` — all workspaces now resolve to webpack
5.105.2

### Context

Same codebase, same commit on main — CI passed at 10:48 UTC (webpack
5.105.4), failed at 16:44 UTC (webpack 5.106.0). Only ExecJS-based SSR
is affected; the node renderer is unaffected.

This override should be removed once webpack ships a patched release.

## Test plan

- [ ] CI passes (gem-tests, package-js-tests, pro-integration-tests)
- [ ] Verify webpack resolves to <5.106.0 in all workspaces

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Limits the allowed `webpack` range across workspaces, which can affect
build outputs and CI, but is a constrained dependency change intended to
prevent a known SSR runtime regression.
> 
> **Overview**
> Caps `webpack` to `>=5.76.0 <5.106.0` via a root `pnpm.overrides`
entry and aligns all dummy app `package.json` files to the same range to
prevent the `[email protected]` ExecJS SSR breakage.
> 
> Regenerates `pnpm-lock.yaml` so installs consistently resolve to
`[email protected]` and updates related lockfile peer/dependency metadata
accordingly.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
e25f387. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Standardized webpack dependency version constraints across development
packages to ensure compatible versions are installed consistently
throughout all environments. This update improves build stability and
performance, reduces version-related conflicts and compatibility issues,
and maintains build tool reliability across development stages and
deployment workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
justin808 added a commit to shakacode/react_on_rails that referenced this pull request Apr 18, 2026
## Summary

- **webpack 5.106.0** (released 2026-04-08) introduces a codegen bug in
anonymous default exports that causes `ReferenceError:
__WEBPACK_DEFAULT_EXPORT__ is not defined` at runtime in ExecJS-based
SSR
- Upstream bug: webpack/webpack#20793
- Upstream fix (draft): webpack/webpack#20796

### Changes

- Cap webpack `<5.106.0` in all three dummy app `package.json` files:
- `react_on_rails/spec/dummy/package.json`: `^5.104.1` → `>=5.76.0
<5.106.0`
- `react_on_rails_pro/spec/dummy/package.json`: `5` → `>=5.0.0 <5.106.0`
- `react_on_rails_pro/spec/execjs-compatible-dummy/package.json`: `5` →
`>=5.0.0 <5.106.0`
- Add pnpm override in root `package.json` as a safety net across all
workspaces
- Updated `pnpm-lock.yaml` — all workspaces now resolve to webpack
5.105.2

### Context

Same codebase, same commit on main — CI passed at 10:48 UTC (webpack
5.105.4), failed at 16:44 UTC (webpack 5.106.0). Only ExecJS-based SSR
is affected; the node renderer is unaffected.

This override should be removed once webpack ships a patched release.

## Test plan

- [ ] CI passes (gem-tests, package-js-tests, pro-integration-tests)
- [ ] Verify webpack resolves to <5.106.0 in all workspaces

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Limits the allowed `webpack` range across workspaces, which can affect
build outputs and CI, but is a constrained dependency change intended to
prevent a known SSR runtime regression.
> 
> **Overview**
> Caps `webpack` to `>=5.76.0 <5.106.0` via a root `pnpm.overrides`
entry and aligns all dummy app `package.json` files to the same range to
prevent the `[email protected]` ExecJS SSR breakage.
> 
> Regenerates `pnpm-lock.yaml` so installs consistently resolve to
`[email protected]` and updates related lockfile peer/dependency metadata
accordingly.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
e25f387. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Standardized webpack dependency version constraints across development
packages to ensure compatible versions are installed consistently
throughout all environments. This update improves build stability and
performance, reduces version-related conflicts and compatibility issues,
and maintains build tool reliability across development stages and
deployment workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
ihabadham added a commit to shakacode/react_on_rails that referenced this pull request Apr 18, 2026
Webpack 5.106.1 (released 2026-04-10) ships the fix for the anonymous
default export regression that caused ReferenceError:
__WEBPACK_DEFAULT_EXPORT__ is not defined in ExecJS-based SSR
(webpack/webpack#20796). The pin added to shakapacker_examples.rake is
no longer needed — generated example apps will now install webpack
5.106.x uncapped.

The companion package.json / pnpm.override pins were removed in the
preceding revert commit.

Closes #3166.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
ihabadham added a commit to shakacode/react_on_rails that referenced this pull request Apr 19, 2026
Webpack 5.106.1 (released 2026-04-10) shipped the upstream fix for the ExecJS SSR regression that made us pin <5.106.0 (webpack/webpack#20796). 5.106.2 followed on 2026-04-15. The pin is no longer needed.

- Reverts the package.json / pnpm.overrides pins from #3095
- Removes the pin_webpack_version method and its call site from shakapacker_examples.rake (added in #3097)

Empirically validated: the examples (3.4, latest) CI job compiled webpack 5.106.2 successfully in rake-generated example apps — the exact path that originally broke at 5.106.0.

Closes #3166.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5.106.0 regression: ReferenceError: __WEBPACK_DEFAULT_EXPORT__ is not defined in SSR/eval contexts

2 participants