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
For complied languages, we really want a package resolver that has two features:
By default, resolver should resolve constraints to a single version. This is needed so that the linker is not confused about which object to link with.
For example, consider the following case:
a project A depends on B and C
B depends on D>= 0.0.1
C depends on D = 0.0.1
D has two versions, 0.0.1 and 0.0.2
The resolver should think hard and pick D@0.0.1 for both B and C.
On the other hand, we need the notion of "build time" dependency, which allows multiple packages to coexist.
Consider the following case:
a project A depends on B and C
B depends on D = 0.0.2
C depends on D = 0.0.1
D has two versions, 0.0.1 and 0.0.2, and is marked as "build Time dependency"
The resolver should pick both versions of D, and create a disk structure like:
Unfortunately, at this moment both npm and yarn don't support a smart resolver like this: yarnpkg/yarn#579.
What we can do in esy is read the constraints listed in 'package.json' file, and use our customized resolver to generate a yarn.lock or shrinkwrap file. After a file is generated, we can then delegate to yarn or npm to fetch the dependencies for us, and then call esy build to build the dependencies.
With esy resolve and esy build, first time users should be able to just work on the layer of esy, without knowing much details about yarn / npm.
The text was updated successfully, but these errors were encountered:
For complied languages, we really want a package resolver that has two features:
For example, consider the following case:
The resolver should think hard and pick D@0.0.1 for both B and C.
Consider the following case:
The resolver should pick both versions of D, and create a disk structure like:
Unfortunately, at this moment both npm and yarn don't support a smart resolver like this: yarnpkg/yarn#579.
What we can do in esy is read the constraints listed in 'package.json' file, and use our customized resolver to generate a
yarn.lock
orshrinkwrap
file. After a file is generated, we can then delegate to yarn or npm to fetch the dependencies for us, and then callesy build
to build the dependencies.With
esy resolve
andesy build
, first time users should be able to just work on the layer ofesy
, without knowing much details about yarn / npm.The text was updated successfully, but these errors were encountered: