From 202c89c1304c911a3bd056d410bb68e5e8f8370a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leosvel=20P=C3=A9rez=20Espinosa?= Date: Wed, 21 Jul 2021 18:44:59 +0100 Subject: [PATCH] feat(core): support project and target specific env files when running a task (#6453) --- .../src/tasks-runner/forked-process-task-runner.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/workspace/src/tasks-runner/forked-process-task-runner.ts b/packages/workspace/src/tasks-runner/forked-process-task-runner.ts index a425ccd8b9..3a8f007e73 100644 --- a/packages/workspace/src/tasks-runner/forked-process-task-runner.ts +++ b/packages/workspace/src/tasks-runner/forked-process-task-runner.ts @@ -29,6 +29,7 @@ export class ForkedProcessTaskRunner { return new Promise((res, rej) => { try { const env = this.envForForkedProcess( + taskGraph.tasks[0].target.target, process.env.FORCE_COLOR === undefined ? 'true' : process.env.FORCE_COLOR @@ -211,6 +212,7 @@ export class ForkedProcessTaskRunner { } private envForForkedProcess( + target: string, forceColor: string, outputPath?: string, forwardOutput?: boolean @@ -218,7 +220,8 @@ export class ForkedProcessTaskRunner { const envsFromFiles = { ...parseEnv('.env'), ...parseEnv('.local.env'), - ...parseEnv('.env.local'), + ...parseEnv(`.${target}.env`), + ...parseEnv(`.env.${target}`), }; const env: NodeJS.ProcessEnv = { @@ -249,14 +252,22 @@ export class ForkedProcessTaskRunner { forwardOutput: boolean ) { let env: NodeJS.ProcessEnv = this.envForForkedProcess( + task.target.target, forceColor, outputPath, forwardOutput ); const envsFromFiles = { + ...parseEnv('.env'), + ...parseEnv('.local.env'), + ...parseEnv('.env.local'), + ...parseEnv(`.${task.target.target}.env`), + ...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`), + ...parseEnv(`${task.projectRoot}/.env.${task.target.target}`), }; env = {