Skip to content
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

fix(@angular-devkit/build-angular): prefer workspace node_modules #18411

Closed
wants to merge 1 commit into from
Closed

fix(@angular-devkit/build-angular): prefer workspace node_modules #18411

wants to merge 1 commit into from

Conversation

alan-agius4
Copy link
Collaborator

In Webpack absolute and relative paths in resolve.module and resolveLoader.modules behave differently.

A relative path will be scanned similarly to how Node scans for node_modules, by looking through the current directory as well as its ancestors (i.e. ./node_modules, ../node_modules, and on).

With an absolute path, it will only search in the given directory.

With this change we give preference to the workspace level node_nodules directory.

Modules resolved with this change

/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/simple-peer
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/rxjs
/workspace/angular-test/client/node_modules/debug
/workspace/angular-test/client/node_modules/get-browser-rtc
/workspace/angular-test/client/node_modules/randombytes
/workspace/angular-test/client/node_modules/queue-microtask
/workspace/angular-test/client/node_modules/readable-stream
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/util-deprecate
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/isarray
/workspace/angular-test/client/node_modules/string_decoder
/workspace/angular-test/client/node_modules/ms
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/isarray
/workspace/angular-test/client/node_modules/base64-js
/workspace/angular-test/client/node_modules/ieee754

Modules resolved before

/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/node_modules/simple-peer
/workspace/angular-test/client/node_modules/simple-peer
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/rxjs
/workspace/angular-test/client/node_modules/debug
/workspace/angular-test/node_modules/debug
/workspace/angular-test/client/node_modules/get-browser-rtc
/workspace/angular-test/node_modules/get-browser-rtc
/workspace/angular-test/client/node_modules/randombytes
/workspace/angular-test/node_modules/randombytes
/workspace/angular-test/client/node_modules/readable-stream
/workspace/angular-test/node_modules/readable-stream
/workspace/angular-test/client/node_modules/queue-microtask
/workspace/angular-test/node_modules/queue-microtask
/workspace/angular-test/client/node_modules/simple-peer/node_modules/readable-stream
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/util-deprecate
/workspace/angular-test/node_modules/util-deprecate
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/string_decoder
/workspace/angular-test/node_modules/string_decoder
/workspace/angular-test/client/node_modules/ms
/workspace/angular-test/node_modules/ms
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/base64-js
/workspace/angular-test/client/node_modules/ieee754
/workspace/angular-test/client/node_modules/isarray

Closes #18396

In Webpack absolute and relative paths in resolve.module and resolveLoader.modules  behave differently.

A relative path will be scanned similarly to how Node scans for node_modules, by looking through the current directory as well as its ancestors (i.e. ./node_modules, ../node_modules, and on).

With an absolute path, it will only search in the given directory.

With this change we give preference to the workspace level node_nodules directory.

Modules resolved with this change
```
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/simple-peer
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/rxjs
/workspace/angular-test/client/node_modules/debug
/workspace/angular-test/client/node_modules/get-browser-rtc
/workspace/angular-test/client/node_modules/randombytes
/workspace/angular-test/client/node_modules/queue-microtask
/workspace/angular-test/client/node_modules/readable-stream
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/process-nextick-args
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/util-deprecate
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/core-util-is
/workspace/angular-test/client/node_modules/isarray
/workspace/angular-test/client/node_modules/string_decoder
/workspace/angular-test/client/node_modules/ms
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/isarray
/workspace/angular-test/client/node_modules/base64-js
/workspace/angular-test/client/node_modules/ieee754
```

Modules resolved before
```
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/client/node_modules/@angular/platform-browser
/workspace/angular-test/node_modules/simple-peer
/workspace/angular-test/client/node_modules/simple-peer
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/@angular/common
/workspace/angular-test/client/node_modules/@angular/core
/workspace/angular-test/client/node_modules/rxjs
/workspace/angular-test/client/node_modules/debug
/workspace/angular-test/node_modules/debug
/workspace/angular-test/client/node_modules/get-browser-rtc
/workspace/angular-test/node_modules/get-browser-rtc
/workspace/angular-test/client/node_modules/randombytes
/workspace/angular-test/node_modules/randombytes
/workspace/angular-test/client/node_modules/readable-stream
/workspace/angular-test/node_modules/readable-stream
/workspace/angular-test/client/node_modules/queue-microtask
/workspace/angular-test/node_modules/queue-microtask
/workspace/angular-test/client/node_modules/simple-peer/node_modules/readable-stream
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/events
/workspace/angular-test/client/node_modules/util-deprecate
/workspace/angular-test/node_modules/util-deprecate
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/client/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/node_modules/inherits
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/string_decoder
/workspace/angular-test/node_modules/string_decoder
/workspace/angular-test/client/node_modules/ms
/workspace/angular-test/node_modules/ms
/workspace/angular-test/client/node_modules/buffer
/workspace/angular-test/client/node_modules/safe-buffer
/workspace/angular-test/node_modules/safe-buffer
/workspace/angular-test/client/node_modules/base64-js
/workspace/angular-test/client/node_modules/ieee754
/workspace/angular-test/client/node_modules/isarray
```

Closes #18396
@alan-agius4 alan-agius4 requested a review from clydin July 31, 2020 07:49
@alan-agius4 alan-agius4 added the target: patch This PR is targeted for the next patch release label Jul 31, 2020
@alan-agius4
Copy link
Collaborator Author

Looking at this a bit more, this change will cause the strandard node_module resolution to break.

@alan-agius4 alan-agius4 added the action: cleanup The PR is in need of cleanup, either due to needing a rebase or in response to comments from reviews label Aug 3, 2020
@alan-agius4 alan-agius4 closed this Aug 4, 2020
clydin pushed a commit that referenced this pull request Aug 5, 2020
…duping

With this change we change the `DedupeModuleResolvePlugin` to act similar to `NormalModuleReplacementPlugin`

Closes: #18411
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: cleanup The PR is in need of cleanup, either due to needing a rebase or in response to comments from reviews target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Angular uses parent node_modules in build process
3 participants