Compare installed versions of packages.
Closed this issue · 3 comments
Looks like this problem is related to duplicated dependencies with different versions.
- Compare installed versions and skip if the package is suitable.
- Cache manifests to speed up fetching.
Originally posted by @nachoaldamav in #38 (comment)
The new system to compare installed versions works with the following projects.
Tests
- Vite
- next.js
- Remix
- Monorepo
Found errors with Remix projects, multiple versions of esbuild are installed.
This is caused because a subdependency installs the version *
(latest) before the fixed version of @remix-run/dev
.
Potential fix
- Skip
*
versions and add it to__SKIPPED
array. - After all the dependencies and subdependencies are installed, try to install the
__SKIPPED
packages (ignore them if the package is already in the rootnode_modules
.
Found errors with Remix projects, multiple versions of esbuild are installed.
This is caused because a subdependency installs the version
*
(latest) before the fixed version of@remix-run/dev
.Potential fix
- Skip
*
versions and add it to__SKIPPED
array.- After all the dependencies and subdependencies are installed, try to install the
__SKIPPED
packages (ignore them if the package is already in the rootnode_modules
.
Partially fixed, now some sub-dependencies are not installed because the .fnpm
parent file is not updated.
Example
rollup-plugin-node-polyfills
is a dependency of @esbuild-plugins/node-modules-polyfill
.
The .fnpm
file of @esbuild-plugins/node-modules-polyfill
is empty which means that it's dependencies are not installed.