Skip to content

Commit 5df223a

Browse files
committed
fix(nextjs): revert automatic development conditions
The automatic addition of 'development' to webpack conditionNames causes issues with Next.js client boundaries due to 'export *' statements in ESM builds. Reverted to manual config in test app only.
1 parent 516ede0 commit 5df223a

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

dev-packages/e2e-tests/test-applications/nextjs-15-spotlight/next.config.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@ const nextConfig = {
77
env: {
88
NEXT_PUBLIC_SENTRY_SPOTLIGHT: 'true',
99
},
10+
11+
// Configure webpack to use 'development' export condition in dev mode
12+
// This enables Sentry SDK's development-only features like Spotlight auto-enablement
13+
// Note: This is required because Next.js doesn't use the 'development' condition by default
14+
webpack: (config, { dev }) => {
15+
if (dev) {
16+
config.resolve = config.resolve || {};
17+
config.resolve.conditionNames = [
18+
'development',
19+
...(config.resolve.conditionNames || ['import', 'module', 'browser', 'require', 'node', 'default']),
20+
];
21+
}
22+
return config;
23+
},
1024
};
1125

1226
module.exports = withSentryConfig(nextConfig, {

packages/nextjs/src/config/webpack.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,6 @@ export function constructWebpackConfigFunction({
9797
// `newConfig.module.rules` is required, so we don't have to keep asserting its existence
9898
const newConfig = setUpModuleRules(rawNewConfig);
9999

100-
// In development mode, add 'development' to resolve conditions so that
101-
// @sentry/* packages use their development exports (which include features like Spotlight auto-enablement)
102-
if (isDev) {
103-
newConfig.resolve = newConfig.resolve || {};
104-
newConfig.resolve.conditionNames = [
105-
'development',
106-
...(newConfig.resolve.conditionNames || ['import', 'module', 'browser', 'require', 'node', 'default']),
107-
];
108-
}
109-
110100
// Add a loader which will inject code that sets global values
111101
addValueInjectionLoader({
112102
newConfig,

0 commit comments

Comments
 (0)