This serves as a glossary and an overview of concepts used in esy with links to detailed guide.
A directory with a manifest (usually
esy command operates in the context of a project sandbox.
A JSON file usually called
package.json which contains information about esy
- Package name and version.
- Dependency declarations.
- Commands needed to build and install package artifacts.
- Other metadata
Support for esy.json
Usually a manifest is represented as
package.json but to allow
to be used exclusively with npm esy allows manifests to be represented as
esy.json files. In the case both
esy.json are present in
the sandbox esy will prefer
Note that in case of a published (on npm registry) package esy won't be able to access
esy.jsonand will only read metadata using npm registry API which is populated from
package.jsonduring publish time.
Maintainers will need to make sure they have crafted a correct
package.jsonwith metadata during publish process.
A unit of software distribution and the smallest unit which is esy operates on.
Package at the root of a sandbox.
Development time dependency
Build time dependency
A result of solving dependencies for a project sandbox.
esy.lock directory in the root of a project.
It is advised to commit this file to a project's repository so that the build environment is reproducible and doesn't depend on the current state of package registries (either npm or opam).