Skip to content

Commit 9d71c71

Browse files
authoredApr 27, 2023
fix(react): skip DefinePlugin for SSR (#16612)
1 parent 9753acb commit 9d71c71

File tree

5 files changed

+19
-25
lines changed

5 files changed

+19
-25
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { composePlugins, withNx } = require('@nx/webpack');
2-
const { withReact } = require('@nx/react');
3-
const { withModuleFederationForSSR } = require('@nx/react/module-federation');
1+
const {composePlugins, withNx} = require('@nx/webpack');
2+
const {withReact} = require('@nx/react');
3+
const {withModuleFederationForSSR} = require('@nx/react/module-federation');
44

55
const baseConfig = require('./module-federation.config');
66

77
const defaultConfig = {
8-
...baseConfig
8+
...baseConfig
99
};
1010

1111
// Nx plugins for webpack to build config object from Nx options and context.
12-
module.exports = composePlugins(withNx(), withReact(), withModuleFederationForSSR(defaultConfig));
12+
module.exports = composePlugins(withNx(), withReact({ssr: true}), withModuleFederationForSSR(defaultConfig));
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { composePlugins, withNx } = require('@nx/webpack');
2-
const { withReact } = require('@nx/react');
3-
const { withModuleFederationForSSR } = require('@nx/react/module-federation');
1+
const {composePlugins, withNx} = require('@nx/webpack');
2+
const {withReact} = require('@nx/react');
3+
const {withModuleFederationForSSR} = require('@nx/react/module-federation');
44

55
const baseConfig = require("./module-federation.server.config");
66

77
const defaultConfig = {
8-
...baseConfig,
8+
...baseConfig,
99
};
1010

1111
// Nx plugins for webpack to build config object from Nx options and context.
12-
module.exports = composePlugins(withNx(), withReact(), withModuleFederationForSSR(defaultConfig));
12+
module.exports = composePlugins(withNx(), withReact({ssr: true}), withModuleFederationForSSR(defaultConfig));

‎packages/react/src/module-federation/with-module-federation-ssr.ts

-4
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@ import { getModuleFederationConfig } from './utils';
44
export async function withModuleFederationForSSR(
55
options: ModuleFederationConfig
66
) {
7-
const reactWebpackConfig = require('../../plugins/webpack');
8-
97
const { sharedLibraries, sharedDependencies, mappedRemotes } =
108
await getModuleFederationConfig(options, {
119
isServer: true,
1210
});
1311

1412
return (config) => {
15-
config = reactWebpackConfig(config);
16-
1713
config.target = false;
1814
config.output.uniqueName = options.name;
1915
config.optimization = {

‎packages/react/src/module-federation/with-module-federation.ts

-3
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,10 @@ import ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationP
1010
export async function withModuleFederation(
1111
options: ModuleFederationConfig
1212
): Promise<AsyncNxWebpackPlugin> {
13-
const reactWebpackConfig = require('../../plugins/webpack');
14-
1513
const { sharedDependencies, sharedLibraries, mappedRemotes } =
1614
await getModuleFederationConfig(options);
1715

1816
return (config, ctx) => {
19-
config = reactWebpackConfig(config, ctx);
2017
config.output.uniqueName = options.name;
2118
config.output.publicPath = 'auto';
2219

‎packages/webpack/src/utils/with-web.ts

+9-8
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { getOutputHashFormat } from './hash-format';
1212
import { PostcssCliResources } from './webpack/plugins/postcss-cli-resources';
1313
import { normalizeExtraEntryPoints } from './webpack/normalize-entry';
1414

15-
import { NxWebpackPlugin } from './config';
15+
import { NxWebpackExecutionContext, NxWebpackPlugin } from './config';
1616
import {
1717
ExtraEntryPointClass,
1818
NormalizedWebpackExecutorOptions,
@@ -25,7 +25,6 @@ import CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
2525
import MiniCssExtractPlugin = require('mini-css-extract-plugin');
2626
import autoprefixer = require('autoprefixer');
2727
import postcssImports = require('postcss-import');
28-
import { NxWebpackExecutionContext } from './config';
2928

3029
interface PostcssOptions {
3130
(loader: any): any;
@@ -47,6 +46,7 @@ export interface WithWebOptions {
4746
stylePreprocessorOptions?: any;
4847
styles?: Array<ExtraEntryPointClass | string>;
4948
subresourceIntegrity?: boolean;
49+
ssr?: boolean;
5050
}
5151

5252
// Omit deprecated options
@@ -110,11 +110,13 @@ export function withWeb(pluginOptions: WithWebOptions = {}): NxWebpackPlugin {
110110
})
111111
);
112112
}
113-
plugins.push(
114-
new webpack.DefinePlugin(
115-
getClientEnvironment(process.env.NODE_ENV).stringified
116-
)
117-
);
113+
if (!pluginOptions.ssr) {
114+
plugins.push(
115+
new webpack.DefinePlugin(
116+
getClientEnvironment(process.env.NODE_ENV).stringified
117+
)
118+
);
119+
}
118120

119121
const entry: { [key: string]: string[] } = {};
120122
const globalStylePaths: string[] = [];
@@ -557,7 +559,6 @@ function getCommonLoadersForGlobalStyle(
557559

558560
function postcssOptionsCreator(
559561
options: MergedOptions,
560-
561562
{
562563
includePaths,
563564
forCssModules = false,

1 commit comments

Comments
 (1)

vercel[bot] commented on Apr 27, 2023

@vercel[bot]

Successfully deployed to the following URLs:

nx-dev – ./

nx-dev-git-master-nrwl.vercel.app
nx.dev
nx-dev-nrwl.vercel.app
nx-five.vercel.app

Please sign in to comment.