From da27b2bd6cc496f6f525f3dbd02f4b37c440f6da Mon Sep 17 00:00:00 2001 From: Kirils L <9858620+kirjai@users.noreply.github.com> Date: Fri, 7 May 2021 17:55:16 +0100 Subject: [PATCH] fix(nextjs): NODE_ENV defaults to production for builds (#5574) --- e2e/next/src/next.test.ts | 12 ++++++++++-- packages/next/src/executors/build/build.impl.ts | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/e2e/next/src/next.test.ts b/e2e/next/src/next.test.ts index 6b172f264a..4bea84533e 100644 --- a/e2e/next/src/next.test.ts +++ b/e2e/next/src/next.test.ts @@ -354,14 +354,22 @@ describe('Next.js Applications', () => { future: { // Nx doesn't support webpack 5 yet webpack5: false, + }, + webpack: (c) => { + console.log('NODE_ENV is', process.env.NODE_ENV); + return c; } } ` ); - - runCLI(`build ${appName}`); + // deleting `NODE_ENV` value, so that it's `undefined`, and not `"test"` + // by the time it reaches the build executor. + // this simulates existing behaviour of running a next.js build executor via Nx + delete process.env.NODE_ENV; + const result = runCLI(`build ${appName}`); checkFilesExist(`dist/apps/${appName}/next.config.js`); + expect(result).toContain('NODE_ENV is production'); }, 120000); it('should support --js flag', async () => { diff --git a/packages/next/src/executors/build/build.impl.ts b/packages/next/src/executors/build/build.impl.ts index e172544640..2079d382af 100644 --- a/packages/next/src/executors/build/build.impl.ts +++ b/packages/next/src/executors/build/build.impl.ts @@ -23,6 +23,8 @@ export default async function buildExecutor( options: NextBuildBuilderOptions, context: ExecutorContext ) { + process.env.NODE_ENV = process.env.NODE_ENV || 'production'; + const root = resolve(context.root, options.root); const projGraph = createProjectGraph();