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(node): npm modules are not resolved correctly #9284
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/nrwl/nx-dev/9rpo3kgwfWj4C6AvSSEerXemda1A [Deployment for 5cc29a2 canceled] |
The current implementation of the node executor resolves all npm modules that are referenced by the application from the root node_modules folder. This behavior leads to runtime errors if any of the project dependencies requires a different version of a package than the project itself. For example, if we have a project that depends on `express` in version `4.17.3` (which on the other hand depends on `path-to-regexp` version `0.1.7`) as well as on `path-to-regexp` in version `6.2.0`. In such case `express` will throw a runtime error since it would load `path-to-regexp` version `6.2.0` which is not API compatible. For this reason, this commit changes the behavior of the node-executor so that it completely ignores npm dependencies when calculating resolve mappings.
8ea3f27
to
5cc29a2
Compare
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.
Thank you for your contribution! LGTM 🎉
The current implementation of the node executor resolves all npm modules that are referenced by the application from the root node_modules folder. This behavior leads to runtime errors if any of the project dependencies requires a different version of a package than the project itself. For example, if we have a project that depends on `express` in version `4.17.3` (which on the other hand depends on `path-to-regexp` version `0.1.7`) as well as on `path-to-regexp` in version `6.2.0`. In such case `express` will throw a runtime error since it would load `path-to-regexp` version `6.2.0` which is not API compatible. For this reason, this commit changes the behavior of the node-executor so that it completely ignores npm dependencies when calculating resolve mappings.
This pull request has already been merged/closed. If you experience issues related to these changes, please open a new issue referencing this pull request. |
Current Behavior
The current implementation of the node executor resolves all npm modules that are referenced by the application from the root node_modules folder. This behavior leads to runtime errors if any of the project dependencies requires a different version off package than the project itself.
For example, if we have a project that depends on
express
in version4.17.3
(which on the other hand depends onpath-to-regexp
version0.1.7
) as well as onpath-to-regexp
in version6.2.0
. In such caseexpress
will throw a runtime error since it would loadpath-to-regexp
version6.2.0
which is not API compatible.Expected Behavior
Node executor should not add resolve mappings for npm modules at all.