Environment variables
Set for every script
Rune sets these after every other layer, so they are always the values below.
A script uses them to find repository-relative paths without hard-coding ../..:
Read by Rune
Read by a config
A config sees the process environment through rune.env, and every read is recorded so it enters
the cache key.
A variable the config read invalidates the cache when it changes. A variable it never read has no effect on caching.
The reserved prefix
Names beginning with RUNE_ cannot be set from an envFile or from a script's env map. An
attempt is ignored and reported:
The reason is that a script reading RUNE_ROOT has to be able to trust it. A config that could
overwrite it would make the value mean something different per script.
RUNE_BINARY_PATH
The npm wrapper resolves a platform package and spawns the binary inside it. RUNE_BINARY_PATH
replaces that resolution:
When the path is set and the file does not exist, the wrapper fails immediately rather than falling back, so a typo does not silently run the published binary instead of the local build.