-
Notifications
You must be signed in to change notification settings - Fork 373
Description
The changes introduced in #744 and #765 result in the use of the incorrect package manager in some cases, where yarn is used where npm should be used instead.
For context, I am working in a repository that has a package-lock.json rather than a yarn.lock file; and indeed, my team uses npm instead of yarn. However, when we added postman-code-generators as a dependency, we started getting errors in CI, because we use an internal npm registry, and yarn is not able to access it using the same configurations and authentication data as npm.
For some reason, neither our top-level package-lock.json, nor this package's own package-lock.json are triggering the first condition that detect-package-manager was supposed to check (the presence of a given package manager's lockfile), so it goes to step 2, which is to check what package managers are available in the machine. And indeed the CI runner we use has both npm and yarn available.
Unfortunately, in the presence of both npm and yarn, detect-package-manager gives precedence to yarn, for some reason. (This has been reported in egoist/detect-package-manager#11, but after a year, there's no resolution yet — or even acknowledgement of the issue by the developer, for that matter).
@aman-v-singh, do you think it would be possible to reorder the array returned by detect-package-manager's detect(), before it is used in npm/deepinstall.js, so that npm comes first in the list?