-
-
Notifications
You must be signed in to change notification settings - Fork 42
fix(@roots/bud) module imports #886
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
@austinpray don't even bother trying to review this. we can fix whatever issues may exist here in a follow up PR. i messed this up. adjacencyList bud.project.peers bud/packages/@roots/bud/src/services/Project/peers/peers.service.ts Lines 83 to 178 in 1542253
bud.extensions bud/packages/@roots/bud-extensions/src/Extensions/extensions.service.ts Lines 58 to 104 in 1542253
|
Overview
Improves module import and discovery.
bud's handling of transitive dependencies is insufficient to deal with bud extensions that rely on other extensions (see sage -> wordpress-preset -> react -> babel)
This is the primary cause of issues like #567, #730. actually, installs work fine if you are installing a root level extension (like babel, postcss). it is only when installing presets and the like that the problems come to the fore.
Supersedes #779
Thanks to @austinpray for his patience explaining and demonstrating how this problem is solved.
I wasn't thorough in benchmarking it but I think Austin's efforts have yielded ~7% performance improvement, although that wasn't the goal. Still, laudable.
refers: #567 #730
closes: none
Type of change
PATCH: Backwards compatible bug fix
This change actually enforces
bud.type
being set to"extension"
in the extension package.json. That could be considered a breaking change but I think I'm the only one to have written an extension to date so I think we're OK calling this a patch.This PR includes breaking changes to the following core packages:
This PR includes breaking changes to the follow extensions:
Proposed changes
bud install
now installs all required dependencies regardless of their current installation state. this keeps versions in sync.Dependency changes
Todo
I have fixed the existing tests but have not covered new methods yet.