diff --git a/package.json b/package.json index dfa4f2a663000..fd75de3eb7bc4 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "cz-customizable": "^6.2.0", "depcheck": "^1.3.1", "document-register-element": "^1.13.1", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "ejs": "^3.1.5", "eslint": "7.10.0", "eslint-config-next": "^11.0.1", diff --git a/packages/cypress/src/executors/cypress/cypress.impl.ts b/packages/cypress/src/executors/cypress/cypress.impl.ts index afa5746ede54f..158094618fb2f 100644 --- a/packages/cypress/src/executors/cypress/cypress.impl.ts +++ b/packages/cypress/src/executors/cypress/cypress.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { basename, dirname, join } from 'path'; import { installedCypressVersion } from '../../utils/cypress-version'; import { @@ -37,10 +38,6 @@ export interface CypressExecutorOptions extends Json { testingType?: 'component' | 'e2e'; } -try { - require('dotenv').config(); -} catch (e) {} - export default async function cypressExecutor( options: CypressExecutorOptions, context: ExecutorContext diff --git a/packages/jest/src/executors/jest/jest.impl.ts b/packages/jest/src/executors/jest/jest.impl.ts index ae9cc7fd52f11..e8ba846918969 100644 --- a/packages/jest/src/executors/jest/jest.impl.ts +++ b/packages/jest/src/executors/jest/jest.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { runCLI } from 'jest'; import { readConfig } from 'jest-config'; import { utils as jestReporterUtils } from '@jest/reporters'; @@ -9,15 +10,7 @@ import { ExecutorContext, TaskGraph } from '@nrwl/devkit'; import { join } from 'path'; import { getSummary } from './summary'; -try { - require('dotenv').config(); -} catch (e) { - // noop -} - -if (process.env.NODE_ENV === null || process.env.NODE_ENV === undefined) { - (process.env as any).NODE_ENV = 'test'; -} +process.env.NODE_ENV ??= 'test'; export async function jestExecutor( options: JestExecutorOptions, diff --git a/packages/next/src/executors/build/build.impl.ts b/packages/next/src/executors/build/build.impl.ts index 1bd30b5a58b31..fcc13275c9ff1 100644 --- a/packages/next/src/executors/build/build.impl.ts +++ b/packages/next/src/executors/build/build.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { ExecutorContext } from '@nrwl/devkit'; import build from 'next/dist/build'; @@ -18,16 +19,12 @@ import { } from '@nrwl/workspace/src/utilities/buildable-libs-utils'; import { assertDependentProjectsHaveBeenBuilt } from '../../utils/buildable-libs'; -try { - require('dotenv').config(); -} catch (e) {} - export default async function buildExecutor( options: NextBuildBuilderOptions, context: ExecutorContext ) { let dependencies: DependentBuildableProjectNode[] = []; - process.env.NODE_ENV = process.env.NODE_ENV || 'production'; + process.env.NODE_ENV ||= 'production'; const root = resolve(context.root, options.root); diff --git a/packages/next/src/executors/export/export.impl.ts b/packages/next/src/executors/export/export.impl.ts index 2b57d76bd7c75..b4b7837737632 100644 --- a/packages/next/src/executors/export/export.impl.ts +++ b/packages/next/src/executors/export/export.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { ExecutorContext, parseTargetString, @@ -19,10 +20,6 @@ import { } from '@nrwl/workspace/src/utilities/buildable-libs-utils'; import { assertDependentProjectsHaveBeenBuilt } from '../../utils/buildable-libs'; -try { - require('dotenv').config(); -} catch (e) {} - export default async function exportExecutor( options: NextExportBuilderOptions, context: ExecutorContext diff --git a/packages/next/src/executors/server/server.impl.ts b/packages/next/src/executors/server/server.impl.ts index 7a95e009fff4c..43e6509c98f68 100644 --- a/packages/next/src/executors/server/server.impl.ts +++ b/packages/next/src/executors/server/server.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { ExecutorContext, logger, @@ -30,10 +31,6 @@ import { } from '@nrwl/workspace/src/utilities/buildable-libs-utils'; import { assertDependentProjectsHaveBeenBuilt } from '../../utils/buildable-libs'; -try { - require('dotenv').config(); -} catch (e) {} - const infoPrefix = `[ ${chalk.dim(chalk.cyan('info'))} ] `; const readyPrefix = `[ ${chalk.green('ready')} ]`; diff --git a/packages/node/src/executors/build/build.impl.ts b/packages/node/src/executors/build/build.impl.ts index b575d13d65e65..3f75aec12baaa 100644 --- a/packages/node/src/executors/build/build.impl.ts +++ b/packages/node/src/executors/build/build.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { ExecutorContext } from '@nrwl/devkit'; import { readCachedProjectGraph } from '@nrwl/workspace/src/core/project-graph'; @@ -18,10 +19,6 @@ import { BuildNodeBuilderOptions } from '../../utils/types'; import { normalizeBuildOptions } from '../../utils/normalize'; import { generatePackageJson } from '../../utils/generate-package-json'; -try { - require('dotenv').config(); -} catch (e) {} - export type NodeBuildEvent = { outfile: string; success: boolean; diff --git a/packages/node/src/executors/execute/execute.impl.ts b/packages/node/src/executors/execute/execute.impl.ts index 447d1cffcd97e..74de1c05747c5 100644 --- a/packages/node/src/executors/execute/execute.impl.ts +++ b/packages/node/src/executors/execute/execute.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { runExecutor, stripIndents, @@ -14,10 +15,6 @@ import * as treeKill from 'tree-kill'; import { NodeBuildEvent } from '../build/build.impl'; import { BuildNodeBuilderOptions } from '../../utils/types'; -try { - require('dotenv').config(); -} catch (e) {} - export const enum InspectType { Inspect = 'inspect', InspectBrk = 'inspect-brk', diff --git a/packages/nx-plugin/src/executors/e2e/e2e.impl.ts b/packages/nx-plugin/src/executors/e2e/e2e.impl.ts index 284abfea8417c..1a1235623e5fa 100644 --- a/packages/nx-plugin/src/executors/e2e/e2e.impl.ts +++ b/packages/nx-plugin/src/executors/e2e/e2e.impl.ts @@ -1,4 +1,7 @@ +import 'dotenv/config'; + import type { ExecutorContext } from '@nrwl/devkit'; + import { convertNxExecutor, logger, @@ -9,11 +12,6 @@ import { import { jestExecutor } from '@nrwl/jest/src/executors/jest/jest.impl'; import type { NxPluginE2EExecutorOptions } from './schema'; -try { - require('dotenv').config(); - // eslint-disable-next-line no-empty -} catch (e) {} - export async function* nxPluginE2EExecutor( options: NxPluginE2EExecutorOptions, context: ExecutorContext diff --git a/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts b/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts index 4d283fcaa8260..ab46e39c88683 100644 --- a/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts +++ b/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { basename, join, sep } from 'path'; import { tmpdir } from 'os'; import { constants, copyFileSync, mkdtempSync, statSync } from 'fs'; @@ -23,10 +24,6 @@ export interface StorybookBuilderOptions { docsMode?: boolean; } -try { - require('dotenv').config(); -} catch (e) {} - export default async function buildStorybookExecutor( options: StorybookBuilderOptions, context: ExecutorContext diff --git a/packages/storybook/src/executors/storybook/storybook.impl.ts b/packages/storybook/src/executors/storybook/storybook.impl.ts index cdfbe0bacd638..2fbe1992a52d7 100644 --- a/packages/storybook/src/executors/storybook/storybook.impl.ts +++ b/packages/storybook/src/executors/storybook/storybook.impl.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { basename, join, sep } from 'path'; import { tmpdir } from 'os'; import { constants, copyFileSync, mkdtempSync, statSync } from 'fs'; @@ -34,10 +35,6 @@ export interface StorybookExecutorOptions { docsMode?: boolean; } -try { - require('dotenv').config(); -} catch (e) {} - export default async function* storybookExecutor( options: StorybookExecutorOptions, context: ExecutorContext diff --git a/packages/workspace/migrations.json b/packages/workspace/migrations.json index d7f8d6a63ce6c..44b40cd3ec7de 100644 --- a/packages/workspace/migrations.json +++ b/packages/workspace/migrations.json @@ -902,6 +902,14 @@ "version": "~4.3.5" } } + }, + "12.7.0": { + "version": "12.7.0-beta.0", + "packages": { + "dotenv": { + "version": "~10.0.0" + } + } } } } diff --git a/packages/workspace/package.json b/packages/workspace/package.json index fc3ae70d564d2..b5dab67f274ef 100644 --- a/packages/workspace/package.json +++ b/packages/workspace/package.json @@ -62,7 +62,7 @@ "chokidar": "^3.5.1", "cosmiconfig": "^4.0.0", "fs-extra": "^9.1.0", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "glob": "7.1.4", "ignore": "^5.0.4", "npm-run-all": "^4.1.5", diff --git a/packages/workspace/src/executors/run-commands/run-commands.impl.ts b/packages/workspace/src/executors/run-commands/run-commands.impl.ts index 0865f6ca5c28e..d7e19cafce549 100644 --- a/packages/workspace/src/executors/run-commands/run-commands.impl.ts +++ b/packages/workspace/src/executors/run-commands/run-commands.impl.ts @@ -5,16 +5,16 @@ import * as yargsParser from 'yargs-parser'; export const LARGE_BUFFER = 1024 * 1000000; -function loadEnvVars(path?: string) { +async function loadEnvVars(path?: string) { if (path) { - const result = require('dotenv').config({ path }); + const result = (await import('dotenv')).config({ path }); if (result.error) { throw result.error; } } else { try { - require('dotenv').config(); - } catch (e) {} + (await import('dotenv')).config(); + } catch {} } } @@ -67,7 +67,7 @@ export default async function ( options: RunCommandsBuilderOptions, context: ExecutorContext ): Promise<{ success: boolean }> { - loadEnvVars(options.envFile); + await loadEnvVars(options.envFile); const normalized = normalizeOptions(options); if (options.readyWhen && !options.parallel) { diff --git a/packages/workspace/src/generators/new/__snapshots__/new.spec.ts.snap b/packages/workspace/src/generators/new/__snapshots__/new.spec.ts.snap index fc22179a3401d..61f2319644b25 100644 --- a/packages/workspace/src/generators/new/__snapshots__/new.spec.ts.snap +++ b/packages/workspace/src/generators/new/__snapshots__/new.spec.ts.snap @@ -11,7 +11,7 @@ Object { "@nrwl/tao": "*", "@nrwl/workspace": "*", "@types/node": "14.14.33", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "prettier": "^2.3.1", "ts-node": "~9.1.1", "typescript": "~4.3.5", @@ -56,7 +56,7 @@ Object { "@nrwl/tao": "*", "@nrwl/workspace": "*", "@types/node": "14.14.33", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "prettier": "^2.3.1", "ts-node": "~9.1.1", "typescript": "~4.3.5", @@ -102,7 +102,7 @@ Object { "@nrwl/tao": "*", "@nrwl/workspace": "*", "@types/node": "14.14.33", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "prettier": "^2.3.1", "ts-node": "~9.1.1", "typescript": "~4.3.5", diff --git a/packages/workspace/src/generators/workspace/files/package.json__tmpl__ b/packages/workspace/src/generators/workspace/files/package.json__tmpl__ index 1121dae0858c8..c50d38eb839d7 100644 --- a/packages/workspace/src/generators/workspace/files/package.json__tmpl__ +++ b/packages/workspace/src/generators/workspace/files/package.json__tmpl__ @@ -39,7 +39,7 @@ "@nrwl/cli": "<%= nxVersion %>", "@nrwl/workspace": "<%= nxVersion %>", "@types/node": "14.14.33", - "dotenv": "8.2.0", + "dotenv": "~10.0.0", "ts-node": "~9.1.1", "typescript": "<%= typescriptVersion %>", "prettier": "<%= prettierVersion %>" diff --git a/yarn.lock b/yarn.lock index 7bdb5a4cf3e54..0732671af160c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11600,6 +11600,11 @@ dotenv@^6.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== +dotenv@~10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + downshift@^6.0.15: version "6.1.3" resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.3.tgz#e794b7805d24810968f21e81ad6bdd9f3fdc40da"