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

Improve interaction of the preferLocal, node and nodePath options #815

Closed
ehmicky opened this issue Feb 13, 2024 · 2 comments · Fixed by #841
Closed

Improve interaction of the preferLocal, node and nodePath options #815

ehmicky opened this issue Feb 13, 2024 · 2 comments · Fixed by #841

Comments

@ehmicky
Copy link
Collaborator

ehmicky commented Feb 13, 2024

Right now:

  1. If the node is true, the nodePath option is used to create the process.
  2. If the preferLocal is true, the nodePath option is used in the child process itself.
  3. If the preferLocal is true, local binaries can be run.

Using preferLocal for 2 is a little unexpected. It seems like we should be using node: true instead since this relates to running Node.js and the nodePath option. Also, running local binaries is rather unrelated to choosing the Node.js version. It is odd to couple them.

On the other hand, by making 2 use node: true instead, we would be ensuring that the nodePath option is always used both to create the process and in the child process itself. For example, execaNode() currently uses the nodePath option in one case but not the other. Users should expect a consistent Node.js version both in the child process and the "grand-child" processes.

What do you think?

@sindresorhus
Copy link
Owner

I agree. nodePath should be consistently used.

@ehmicky
Copy link
Collaborator Author

ehmicky commented Feb 13, 2024

I think the reason for the current situation was due to implementation details. Namely, both features are implemented using the PATH environment variable, so the nodePath feature got piggybacked onto the preferLocal feature using the npm-run-path library.

I have created sindresorhus/npm-run-path#17 to see if we could add some options to allow decoupling those two features in npm-run-path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants