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.
🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-24802
📔 Objective
Enable Nx builds in the browser extension. For example:
Most complexity here is that we need to support the pre-nx build pipelines for a while, so we have to juggle both configurations. I've split webpack.config.js into webpack.nx.config.js, webpack.npm.config.js, and a shared webpack.shared.config.js. The normal webpack.config.js re-exports webpack.npm.config.js since that is what CI still expects.
In this PR in particular I also added
tsconfig.build.json
files that exclude stories from builds. Without this nx builds were failing due to some legitimate errors in the components project that aren't revealed by other builds. I don't condone this pattern in general, but didn't want to get distracted and decided to follow the pattern already established in the web vault with itstsconfig.build.json
files already committed here and here.Once we update CI to use Nx builds exclusively, and the Nx builds have had time to get battle tested, we'll remove the old npm builds and this configuration will get much simpler.
Otherwise, this is a fairly straightforward port of the build commands from cli's package.json into a functioning project.json. It uses the standard executors and follows Nx conventions for this kind of build without much else that is special.
📸 Screenshots
⏰ Reminders before review
🦮 Reviewer guidelines
:+1:
) or similar for great changes:memo:
) or ℹ️ (:information_source:
) for notes or general info:question:
) for questions:thinking:
) or 💭 (:thought_balloon:
) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:
) for suggestions / improvements:x:
) or:warning:
) for more significant problems or concerns needing attention:seedling:
) or ♻️ (:recycle:
) for future improvements or indications of technical debt:pick:
) for minor or nitpick changes