Composing using imports
You can compose environments either locally or by referencing inputs.
Imagine you're building a typical web application, with separate frontend and backend components that live in separate folders.
devenv.yaml
inputs:
nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling
devenv:
url: github:cachix/devenv
imports:
- ./frontend
- ./backend
- devenv/examples/supported-languages
- devenv/examples/scripts
If you enter the frontend
directory, the environment will activate based on what's in the frontend/devenv.nix
file.
If you enter the top-level project, the environment is combined with what's defined in backend/devenv.nix
and frontend/devenv.nix
.
For example, devenv up
will start both the frontend and backend processes.
Note
While composing devenv.nix
is a key feature,
composing devenv.yaml
hasn't been implemented yet.
See devenv.yaml reference for all supported imports.