summaryrefslogtreecommitdiff
path: root/cli/npm/resolution
AgeCommit message (Collapse)Author
2023-01-06fix(npm): reduce copy packages when resolving optional peer dependencies ↵David Sherret
(#17280) If an optional peer dependency entry previously wasn't resolved and it's now being resolved, then it will add it as if it were a dependency of the previously resolved package instead of creating a new "copy package" (seems to be what npm and pnpm does). Closes #17240
2023-01-06fix(npm): panic resolving some dependencies with dist tags (#17278)David Sherret
This would only occur if a dist tag for a package was resolved more than once. Closes #17275
2023-01-05refactor(cli,core,ext,rt): remove some unnecessary `clone` or `malloc` (#17274)Yiyu Lin
2023-01-02chore: update copyright year to 2023 (#17247)David Sherret
Yearly tradition of creating extra noise in git.
2022-12-20fix(npm): resolve npm specifiers when root redirected (#17144)David Sherret
Closes #17136
2022-12-06refactor: remove `deno_graph::Locker` usage (#16877)David Sherret
This is just a straight refactor and doesn't make any improvements to the code that could now be made. Closes #16493
2022-11-25refactor: move lockfile.rs to args module (#16818)David Sherret
This should be in the `args` folder as it's similar to `config_file`.
2022-11-22fix: Make npm packages works with import maps (#16754)Bartek Iwańczuk
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-11-18fix(npm): ancestor that resolves peer dependency should not include self in ↵David Sherret
id (#16693) Closes #16683
2022-11-17perf(npm): make dependency resolution faster (#16694)David Sherret
2022-11-18chore: use Rust 1.65.0 (#16688)Aaron O'Mullan
2022-11-15fix(npm): support dist tags specified in npm package dependencies (#16652)David Sherret
Closes #16321
2022-11-14fix(npm): handle peer dep being resolved without resolved dep higher in tree ↵David Sherret
and then with (#16640) Peer dependency resolution wasn't handling a peer dependency being resolved without a dep higher in the tree and then with one being found higher in the tree.
2022-11-13feat(npm): require --unstable for npm specifiers in remote modules (#16612)David Sherret
2022-11-12fix(npm): specifier resolution - handle data urls and modules at a directory ↵David Sherret
(#16611)
2022-11-11feat(unstable/npm): module graph derived npm specifier resolution order (#16602)David Sherret
2022-11-11perf: more efficient `deno cache` and npm package info usage (#16592)David Sherret
1. There was a lot of cloning going on with `NpmPackageInfo`. This is now stored in an `Arc<NpmPackageInfo>` and cloning only happens on the individual version. 2. The package cache is now cleared from memory after resolution. 3. This surfaced a bug in `deno cache` and I noticed it can be more efficient if we have multiple root specifiers if we provide all the specifiers as roots.
2022-11-08feat(unstable/npm): support peer dependencies (#16561)David Sherret
This adds support for peer dependencies in npm packages. 1. If not found higher in the tree (ancestor and ancestor siblings), peer dependencies are resolved like a dependency similar to npm 7. 2. Optional peer dependencies are only resolved if found higher in the tree. 3. This creates "copy packages" or duplicates of a package when a package has different resolution due to peer dependency resolution—see https://pnpm.io/how-peers-are-resolved. Unlike pnpm though, duplicates of packages will have `_1`, `_2`, etc. added to the end of the package version in the directory in order to minimize the chance of hitting the max file path limit on Windows. This is done for both the local "node_modules" directory and also the global npm cache. The files are hard linked in this case to reduce hard drive space. This is a first pass and the code is definitely more inefficient than it could be. Closes #15823