Skip to content

Commit

Permalink
fix(nx-cloud): ensure root .env files are loaded during dte (#22859)
Browse files Browse the repository at this point in the history
(cherry picked from commit edc7931)
  • Loading branch information
AgentEnder authored and FrozenPandaz committed Apr 18, 2024
1 parent e981d11 commit a0b4ac1
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 19 deletions.
25 changes: 6 additions & 19 deletions packages/nx/bin/nx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import {
WorkspaceTypeAndRoot,
} from '../src/utils/find-workspace-root';
import * as chalk from 'chalk';
import { config as loadDotEnvFile } from 'dotenv';
import { expand } from 'dotenv-expand';
import { loadRootEnvFiles } from '../src/utils/dotenv';
import { initLocal } from './init-local';
import { output } from '../src/utils/output';
import {
Expand Down Expand Up @@ -33,16 +32,19 @@ function main() {

require('nx/src/utils/perf-logging');

const workspace = findWorkspaceRoot(process.cwd());

performance.mark('loading dotenv files:start');
loadDotEnvFiles();
if (workspace) {
loadRootEnvFiles(workspace.dir);
}
performance.mark('loading dotenv files:end');
performance.measure(
'loading dotenv files',
'loading dotenv files:start',
'loading dotenv files:end'
);

const workspace = findWorkspaceRoot(process.cwd());
// new is a special case because there is no local workspace to load
if (
process.argv[2] === 'new' ||
Expand Down Expand Up @@ -105,21 +107,6 @@ function main() {
}
}

/**
* This loads dotenv files from:
* - .env
* - .local.env
* - .env.local
*/
function loadDotEnvFiles() {
for (const file of ['.local.env', '.env.local', '.env']) {
const myEnv = loadDotEnvFile({
path: file,
});
expand(myEnv);
}
}

function handleNoWorkspace(globalNxVersion?: string) {
output.log({
title: `The current directory isn't part of an Nx workspace.`,
Expand Down
2 changes: 2 additions & 0 deletions packages/nx/src/tasks-runner/init-tasks-runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import { invokeTasksRunner } from './run-command';
import { InvokeRunnerTerminalOutputLifeCycle } from './life-cycles/invoke-runner-terminal-output-life-cycle';
import { performance } from 'perf_hooks';
import { getOutputs } from './utils';
import { loadRootEnvFiles } from '../utils/dotenv';

export async function initTasksRunner(nxArgs: NxArgs) {
performance.mark('init-local');
loadRootEnvFiles();
workspaceConfigurationCheck();
const nxJson = readNxJson();
if (nxArgs.verbose) {
Expand Down
19 changes: 19 additions & 0 deletions packages/nx/src/utils/dotenv.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { config as loadDotEnvFile } from 'dotenv';
import { expand } from 'dotenv-expand';
import { workspaceRoot } from './workspace-root';
import { join } from 'path';

/**
* This loads dotenv files from:
* - .env
* - .local.env
* - .env.local
*/
export function loadRootEnvFiles(root = workspaceRoot) {
for (const file of ['.local.env', '.env.local', '.env']) {
const myEnv = loadDotEnvFile({
path: join(root, file),
});
expand(myEnv);
}
}

0 comments on commit a0b4ac1

Please sign in to comment.