Skip to content

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