refactor: address issue with bazel resolution of peer dependencies (main)#31782
Merged
alan-agius4 merged 2 commits intoangular:mainfrom Nov 13, 2025
Merged
refactor: address issue with bazel resolution of peer dependencies (main)#31782alan-agius4 merged 2 commits intoangular:mainfrom
alan-agius4 merged 2 commits intoangular:mainfrom
Conversation
Key changes include:
- **Removal of PNPM Hook:** The `.pnpmfile.cjs` file, which previously converted peer dependencies into
direct dependencies, has been deleted. This workaround is no longer necessary with the adoption of dynamic
imports. The `MODULE.bazel` file has been updated to remove references to it.
- **Dynamic Imports**
- In the `build_webpack` package, static `import` statements for `webpack` and `webpack-dev-server` are
replaced with dynamic `import()` calls. This defers their loading until they are actively required during
the process.
- In the `ssr-dev-server`, `browser-sync` is now loaded using `createRequire` relative to the workspace
root, improving resolution reliability.
- **Build Configuration:** Associated `BUILD.bazel` files have been updated to remove dependency declarations that are now obsolete due to the new lazy-loading approach.
alan-agius4
commented
Nov 13, 2025
| let browserSync: typeof import('browser-sync'); | ||
| try { | ||
| browserSync = require('browser-sync'); | ||
| browserSync = createRequire(context.workspaceRoot + '/')('browser-sync'); |
Collaborator
Author
There was a problem hiding this comment.
browser-sync is installed in the project (app), and thus the resolution should happen from the workspaceRoot not from this package.
alan-agius4
commented
Nov 13, 2025
| } | ||
| } else { | ||
| return of(webpack(c)); | ||
| return from(import('webpack').then((mod) => mod.default(c))); |
Collaborator
Author
There was a problem hiding this comment.
When a factory is not provided we should need to try to resolve webpack from this directory. This will fail when using the peerDeps of build-angular due to how modules are hoisted.
devversion
approved these changes
Nov 13, 2025
Collaborator
Author
|
This PR was merged into the repository. The changes were merged into the following branches:
|
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Key changes include:
Removal of PNPM Hook: The
.pnpmfile.cjsfile, which previously converted peer dependencies intodirect dependencies, has been deleted. This workaround is no longer necessary with the adoption of dynamic
imports. The
MODULE.bazelfile has been updated to remove references to it.Dynamic Imports
build_webpackpackage, staticimportstatements forwebpackandwebpack-dev-serverarereplaced with dynamic
import()calls. This defers their loading until they are actively required duringthe process.
ssr-dev-server,browser-syncis now loaded usingcreateRequirerelative to the workspaceroot, improving resolution reliability.
Build Configuration: Associated
BUILD.bazelfiles have been updated to remove dependency declarations that are now obsolete due to the new lazy-loading approach.