-
-
Notifications
You must be signed in to change notification settings - Fork 431
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
Unable to install on node 16 #1464
Comments
Came here to report this same issue |
Looks like npm is the issue here, not node 16. Looking at the error message it suggests babel-loader may be the cause? I'm unclear what a fix here would look like. Happy to take a PR if someone has an idea. For now it looks like you can use the |
It's the strict-peer deps issue. |
Oh really? Might pivot ts-loader back to npm from yarn then |
Strict-peer deps is for the better in general. The NPM peer dependency resolution was broken to begin with, so the tools finally trying to right the boat. |
Try this command-
|
Just for the record, no, we are not. Peer dependencies ranges have always been a hint, have worked just fine in Yarn, and we have no plan to change them (whether it's to abort on "invalid" peer dependency versions, or auto-install peer dependencies). |
Good to know. I thought it was doing similar thing as pnpm. thx for the clarification. 🌷 |
For clarity, we enforce dependencies (so that packages can only access the dependencies they declare), because there's no guarantee as to what would happen otherwise. Pnpm does it as well, but npm (even its latest releases) doesn't. Peer dependencies, on the other hand, have a quite different semantic: they only guarantee that a package will get access to the exact same instance of its declared peer dependencies as what its parent the dependency tree provided. Optionally, they also check that the provided versions match specific semver ranges, but that's secondary (that's what I was referring to by saying "it's just a hint": the range is only a check, and doesn't contribute to the version resolution). Npm 7 changed the way peer dependencies worked so that if you fulfill a peer dependency with an invalid package (for example providing |
Can't install ts-loader with node 16.
Expected Behaviour
Install should be successful in ts-loader repository with node 16.
Actual Behaviour
node 16 install fails in ts-loader repository with the following output
Steps to Reproduce the Problem
I used v16.15.0 (npm v8.5.5) but you can use any version of node 16.
npm i
Location of a Minimal Repository that Demonstrates the Issue.
This repository.
The text was updated successfully, but these errors were encountered: