Skip to content

Commit 723f851

Browse files
committed
fix(nextjs): Avoid importing SentryWebpackPlugin in dev mode
1 parent 4ba98e2 commit 723f851

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

packages/nextjs/src/config/webpack.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
/* eslint-disable complexity */
22
/* eslint-disable max-lines */
33
import { getSentryRelease } from '@sentry/node';
4-
import { arrayify, dropUndefinedKeys, escapeStringForRegex, logger } from '@sentry/utils';
5-
import { default as SentryWebpackPlugin } from '@sentry/webpack-plugin';
4+
import { arrayify, dropUndefinedKeys, escapeStringForRegex, loadModule, logger } from '@sentry/utils';
65
import * as chalk from 'chalk';
76
import * as fs from 'fs';
87
import * as path from 'path';
@@ -313,8 +312,11 @@ export function constructWebpackConfigFunction(
313312
// without, the option to use `hidden-source-map` only applies to the client-side build.
314313
newConfig.devtool = userSentryOptions.hideSourceMaps && !isServer ? 'hidden-source-map' : 'source-map';
315314

315+
const SentryWebpackPlugin = loadModule('@sentry/webpack-plugin');
316+
316317
newConfig.plugins = newConfig.plugins || [];
317318
newConfig.plugins.push(
319+
// @ts-expect-error - this exists, the dynamic import just doesn't know about it
318320
new SentryWebpackPlugin(
319321
getWebpackPluginOptions(buildContext, userSentryWebpackPluginOptions, userSentryOptions),
320322
),
@@ -767,6 +769,9 @@ function shouldEnableWebpackPlugin(buildContext: BuildContext, userSentryOptions
767769
// architecture-specific version of the `sentry-cli` binary. If `yarn install`, `npm install`, or `npm ci` are run
768770
// with the `--ignore-scripts` option, this will be blocked and the missing binary will cause an error when users
769771
// try to build their apps.
772+
const SentryWebpackPlugin = loadModule('@sentry/webpack-plugin');
773+
774+
// @ts-expect-error - this exists, the dynamic import just doesn't know it
770775
if (!SentryWebpackPlugin.cliBinaryExists()) {
771776
// eslint-disable-next-line no-console
772777
console.error(

0 commit comments

Comments
 (0)