Skip to content

Commit

Permalink
feat(core): allow loading env vars by target and configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
AgentEnder committed Feb 14, 2023
1 parent 8165459 commit bf5f755
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
24 changes: 14 additions & 10 deletions docs/shared/guides/define-environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,20 @@ the runtime of an app.

By default, Nx will load any environment variables you place in the following files:

1. `apps/my-app/.[target-name].env`
2. `apps/my-app/.env.[target-name]`
3. `apps/my-app/.local.env`
4. `apps/my-app/.env.local`
5. `apps/my-app/.env`
6. `.[target-name].env`
7. `.env.[target-name]`
8. `.local.env`
9. `.env.local`
10. `.env`
1. `apps/my-app/.[target-name].[configuration-name].env`
2. `apps/my-app/.env.[target-name].[configuration-name]`
3. `apps/my-app/.[target-name].env`
4. `apps/my-app/.env.[target-name]`
5. `apps/my-app/.local.env`
6. `apps/my-app/.env.local`
7. `apps/my-app/.env`
8. `.[target-name].[configuration-name].env`
9. `.env.[target-name].[configuration-name]`
10. `.[target-name].env`
11. `.env.[target-name]`
12. `.local.env`
13. `.env.local`
14. `.env`

{% callout type="warning" title="Order is important" %}
Nx will move through the above list, ignoring files it can't find, and loading environment variables
Expand Down
16 changes: 16 additions & 0 deletions packages/nx/src/tasks-runner/forked-process-task-runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -384,12 +384,28 @@ export class ForkedProcessTaskRunner {
return {
...this.getDotenvVariablesForForkedProcess(),
...parseEnv(`.${task.target.target}.env`),
...(task.target.configuration
? parseEnv(`.${task.target.target}.${task.target.configuration}.env`)
: {}),
...(task.target.configuration
? parseEnv(`.env.${task.target.target}.${task.target.configuration}`)
: {}),
...parseEnv(`.env.${task.target.target}`),
...parseEnv(`${task.projectRoot}/.env`),
...parseEnv(`${task.projectRoot}/.local.env`),
...parseEnv(`${task.projectRoot}/.env.local`),
...parseEnv(`${task.projectRoot}/.${task.target.target}.env`),
...(task.target.configuration
? parseEnv(
`${task.projectRoot}/.${task.target.target}.${task.target.configuration}.env`
)
: {}),
...parseEnv(`${task.projectRoot}/.env.${task.target.target}`),
...(task.target.configuration
? parseEnv(
`${task.projectRoot}/.env.${task.target.target}.${task.target.configuration}`
)
: {}),
};
} else {
return {};
Expand Down

0 comments on commit bf5f755

Please sign in to comment.