You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we clone https://github.com/moment/moment and run deno install && deno task test, it fails with the following error. We think it's something to do with how node modules are structured by deno install.
The same works if we install node modules using npm i and run test using deno task test.
…odules/.bin` (#25873)
Fixes#25862.
npm only makes bin entries executable if they get linked into `.bin`, as
we did before this PR. So this PR actually deviates from npm, because
it's the only reasonable way to fix this that I can think of.
---
The reason this was broken in moment is the following:
Moment has dependencies on two typescript versions: 1.8 and 3.1
If you have two packages with conflicting bin entries (i.e. two
typescript versions which both have a bin entry `tsc`), in npm it is
non-deterministic and undefined which one will end up in `.bin`.
npm, due to implementation differences, chooses to put typescript 1.8
into the `.bin` directory, and so `node_modules/typescript/bin/tsc` ends
up getting marked executable. We, however, choose typescript 3.2, and so
we end up making `node_modules/typescript3/bin/tsc` executable.
As part of its tests, moment executes `node_modules/typescript/bin/tsc`.
Because we didn't make it executable, this fails.
Since the conflict resolution is undefined in npm, instead of trying to
match it, I think it makes more sense to just make bin entries
executable even if they aren't chosen in the case of a conflict.
When we clone https://github.com/moment/moment and run
deno install && deno task test
, it fails with the following error. We think it's something to do with how node modules are structured bydeno install
.The same works if we install node modules using
npm i
and run test usingdeno task test
.Co-authored-by: littledivy
The text was updated successfully, but these errors were encountered: