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.
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
new installation mode: isolated-mode #436
new installation mode: isolated-mode #436
Changes from all commits
2917986
ad6b74f
70e9e1e
6c74a6b
521dfba
bb8111b
57a6cf8
d5a2ff7
eb01f8a
21ddebd
3c87b56
c23a1be
d255dbd
a7ec2a2
353b73e
ca95d1d
aa4bc78
9ead3c7
b4c6480
17623f0
2496b9f
357b9f1
0c8cf35
244c43e
40b9817
0881faa
c3a8af2
d5e6189
7b23698
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can probably avoid a lot of this peerDep/edge case analysis if we specify that we are going to implement the isolation mode as a post-buildIdealTree conversion step.
That is, even though there are dependency graph shapes that may be enabled by isolated-mode, which are not enabled by hoisted mode, some some of these may be desirable, we are going to instead favor interoperability and reducing the degree of change in the dependency contracts enforced by npm.
So, whereas hoisted mode does the following:
instead, npm will:
Thus, any situation not currently resolvable by hoisted-mode will not be possible with isolated-mode. However, this ensures that any project may be reified using either hoisted or isolated mode, or switched between them, without any changes to the project lockfile.
Anything that causes an
ERESOLVE
error in hoisted mode will also cause anERESOLVE
error in isolated mode.Then the task is to document how that conversion process is accomplished. Imo, that ought to end up in this RFC document, even if it happens after some implementation work has been done (which is probably a good idea, since we're bound to find some edge cases we haven't thought of!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@isaacs , can you make an edit or suggestion that reflects this?