diff --git a/packages/bundler-plugin-core/src/index.ts b/packages/bundler-plugin-core/src/index.ts index dc7006dc..e8eb3897 100644 --- a/packages/bundler-plugin-core/src/index.ts +++ b/packages/bundler-plugin-core/src/index.ts @@ -33,7 +33,10 @@ interface SentryUnpluginFactoryOptions { componentNameAnnotatePlugin?: (ignoredComponents?: string[]) => UnpluginOptions; moduleMetadataInjectionPlugin: (injectionCode: string) => UnpluginOptions; debugIdInjectionPlugin: (logger: Logger) => UnpluginOptions; - debugIdUploadPlugin: (upload: (buildArtifacts: string[]) => Promise) => UnpluginOptions; + debugIdUploadPlugin: ( + upload: (buildArtifacts: string[]) => Promise, + logger: Logger + ) => UnpluginOptions; bundleSizeOptimizationsPlugin: (buildFlags: SentrySDKBuildFlags) => UnpluginOptions; } @@ -408,7 +411,8 @@ export function sentryUnpluginFactory({ vcsRemote: options.release.vcsRemote, headers: options.headers, }, - }) + }), + logger ) ); } diff --git a/packages/webpack-plugin/src/index.ts b/packages/webpack-plugin/src/index.ts index f215630c..0389cc1c 100644 --- a/packages/webpack-plugin/src/index.ts +++ b/packages/webpack-plugin/src/index.ts @@ -5,6 +5,7 @@ import { stringToUUID, SentrySDKBuildFlags, createComponentNameAnnotateHooks, + Logger, } from "@sentry/bundler-plugin-core"; import * as path from "path"; import { UnpluginOptions } from "unplugin"; @@ -117,7 +118,8 @@ function webpackDebugIdInjectionPlugin(): UnpluginOptions { } function webpackDebugIdUploadPlugin( - upload: (buildArtifacts: string[]) => Promise + upload: (buildArtifacts: string[]) => Promise, + logger: Logger ): UnpluginOptions { const pluginName = "sentry-webpack-debug-id-upload-plugin"; return { @@ -133,6 +135,15 @@ function webpackDebugIdUploadPlugin( callback(); }); }); + + if (compiler.options.mode === "production") { + compiler.hooks.done.tap(pluginName, () => { + setTimeout(() => { + logger.debug("Exiting process after debug file upload"); + process.exit(0); + }); + }); + } }, }; }