fix(nextjs): Deprecate adding NX_ vars to Webpack Define (#18892)
This commit is contained in:
parent
74e5879e8d
commit
da2a08e575
@ -8,6 +8,36 @@ import type { NextBuildBuilderOptions } from '../src/utils/types';
|
|||||||
import type { DependentBuildableProjectNode } from '@nx/js/src/utils/buildable-libs-utils';
|
import type { DependentBuildableProjectNode } from '@nx/js/src/utils/buildable-libs-utils';
|
||||||
import type { ProjectGraph, ProjectGraphProjectNode, Target } from '@nx/devkit';
|
import type { ProjectGraph, ProjectGraphProjectNode, Target } from '@nx/devkit';
|
||||||
|
|
||||||
|
const baseNXEnvironmentVariables = [
|
||||||
|
'NX_BASE',
|
||||||
|
'NX_CACHE_DIRECTORY',
|
||||||
|
'NX_CACHE_PROJECT_GRAPH',
|
||||||
|
'NX_DAEMON',
|
||||||
|
'NX_DEFAULT_PROJECT',
|
||||||
|
'NX_HEAD',
|
||||||
|
'NX_PERF_LOGGING',
|
||||||
|
'NX_PROFILE',
|
||||||
|
'NX_PROJECT_GRAPH_CACHE_DIRECTORY',
|
||||||
|
'NX_PROJECT_GRAPH_MAX_WORKERS',
|
||||||
|
'NX_RUNNER',
|
||||||
|
'NX_SKIP_NX_CACHE',
|
||||||
|
'NX_TASKS_RUNNER',
|
||||||
|
'NX_TASKS_RUNNER_DYNAMIC_OUTPUT',
|
||||||
|
'NX_VERBOSE_LOGGING',
|
||||||
|
'NX_DRY_RUN',
|
||||||
|
'NX_INTERACTIVE',
|
||||||
|
'NX_GENERATE_QUIET',
|
||||||
|
'NX_PREFER_TS_NODE',
|
||||||
|
'NX_TASK_TARGET_PROJECT',
|
||||||
|
'NX_TASK_TARGET_TARGET',
|
||||||
|
'NX_TASK_TARGET_CONFIGURATION',
|
||||||
|
'NX_CLI_SET',
|
||||||
|
'NX_LOAD_DOT_ENV_FILES',
|
||||||
|
'NX_WORKSPACE_ROOT',
|
||||||
|
'NX_TASK_HASH',
|
||||||
|
'NX_NEXT_DIR',
|
||||||
|
];
|
||||||
|
|
||||||
export interface WithNxOptions extends NextConfig {
|
export interface WithNxOptions extends NextConfig {
|
||||||
nx?: {
|
nx?: {
|
||||||
svgr?: boolean;
|
svgr?: boolean;
|
||||||
@ -364,6 +394,12 @@ export function getNextConfig(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNonBaseVariables(oldEnv) {
|
||||||
|
return Object.keys(oldEnv).filter(
|
||||||
|
(env) => !baseNXEnvironmentVariables.includes(env)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function getNxEnvironmentVariables() {
|
function getNxEnvironmentVariables() {
|
||||||
return Object.keys(process.env)
|
return Object.keys(process.env)
|
||||||
.filter((env) => /^NX_/i.test(env))
|
.filter((env) => /^NX_/i.test(env))
|
||||||
@ -372,7 +408,10 @@ function getNxEnvironmentVariables() {
|
|||||||
return env;
|
return env;
|
||||||
}, {});
|
}, {});
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* TODO(v18)
|
||||||
|
* @deprecated Use Next.js 9.4+ built-in support for environment variables. Reference https://nextjs.org/docs/pages/api-reference/next-config-js/env
|
||||||
|
*/
|
||||||
function addNxEnvVariables(config: any) {
|
function addNxEnvVariables(config: any) {
|
||||||
const maybeDefinePlugin = config.plugins?.find((plugin) => {
|
const maybeDefinePlugin = config.plugins?.find((plugin) => {
|
||||||
return plugin.definitions?.['process.env.NODE_ENV'];
|
return plugin.definitions?.['process.env.NODE_ENV'];
|
||||||
@ -387,6 +426,15 @@ function addNxEnvVariables(config: any) {
|
|||||||
.forEach(
|
.forEach(
|
||||||
([name, value]) => (maybeDefinePlugin.definitions[name] = value)
|
([name, value]) => (maybeDefinePlugin.definitions[name] = value)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const vars = getNonBaseVariables(env);
|
||||||
|
if (vars.length > 0) {
|
||||||
|
console.warn(
|
||||||
|
`Warning, in Nx 18 environment variables starting with NX_ will not be available in the browser, and currently will not work with @nx/next:server executor.\nPlease rename the following environment variables: ${vars.join(
|
||||||
|
', '
|
||||||
|
)} using Next.js' built-in support for environment variables. Reference https://nextjs.org/docs/pages/api-reference/next-config-js/env`
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user