gifted-balloon-26385
03/12/2025, 5:37 PMred-match-15116
03/12/2025, 6:12 PMdev-stacks
environment that has all our baseline configuration. Individual devs import the shared/dev-stacks
environment into their own environment (e.g. dev/komal
), and overwrite or add keys that are specific to their workflows/environments (like db name or specific api keys if relevant) and then use those for our IaC stacks or in our CLI processes.
Does that solve what you're looking for?gifted-balloon-26385
03/12/2025, 7:16 PMdev
command in package.json set to something like esc run shared-dev-env — ts-node …
. 90% of the config is in a .gitignore’d .yaml file (so devs can change their config as needed), which is what i’m trying to move into our ESC env & prompted this question.
So if we move to developer-specific environments (dev/jm
instead of dev/shared-env
), we obviously can’t hardcode the env name in package.json anymore. so in theory a dev could run esc run dev/jm — npm run dev
, but we have a big monorepo, so when you run npm run dev
at the root, it runs the dev
command in all subpackages, so you’d want a different env per subpackage (ie you wouldn’t want to run esc run dev/jm — npm run dev
at the root).
i can hack my way around this - in the subpackage’s package.json, we can make dev
run esc run $(cat ./current_env) -- ts-node ...
and just gitignore current_env
, so devs can just point that file at their personal env. but being able to associate esc envs with a specific directory locally would be a very useful feature. doppler does this, ie you run doppler configure
and then it sets that directory to a specific env, so when you run doppler run -- mycommand
it just runs whatever env is configured for the cwdred-match-15116
03/12/2025, 8:10 PMhallowed-baker-22997
03/13/2025, 5:42 PM# .envrc
export ESC_ENV="dev/jm"
# package.json
"scripts": {
"dev": "esc run $ESC_ENV -- ts-node ..."
}