diff --git a/packages/integrations/rollup.config.js b/packages/integrations/rollup.config.js index 85672fccc6f9..622e5c548b5e 100644 --- a/packages/integrations/rollup.config.js +++ b/packages/integrations/rollup.config.js @@ -15,6 +15,7 @@ function loadAllIntegrations() { const baseBundleConfig = makeBaseBundleConfig({ input: `src/${file}`, isAddOn: true, + jsVersion: 'es5', outputFileBase: `build/${file.replace('.ts', '')}`, }); diff --git a/packages/tracing/rollup.config.js b/packages/tracing/rollup.config.js index 2b5f4fbc13ee..f00c26a11ed3 100644 --- a/packages/tracing/rollup.config.js +++ b/packages/tracing/rollup.config.js @@ -5,6 +5,7 @@ const licensePlugin = makeLicensePlugin('@sentry/tracing & @sentry/browser'); const baseBundleConfig = makeBaseBundleConfig({ input: 'src/index.bundle.ts', isAddOn: false, + jsVersion: 'es5', outputFileBase: 'build/bundle.tracing', }); diff --git a/packages/vue/rollup.config.js b/packages/vue/rollup.config.js index 9092aa12634f..3b1f34a7b6ca 100644 --- a/packages/vue/rollup.config.js +++ b/packages/vue/rollup.config.js @@ -5,6 +5,7 @@ const licensePlugin = makeLicensePlugin(); const baseBundleConfig = makeBaseBundleConfig({ input: 'src/index.bundle.ts', isAddOn: false, + jsVersion: 'es5', outputFileBase: 'build/bundle.vue', }); diff --git a/packages/wasm/rollup.config.js b/packages/wasm/rollup.config.js index 3fe988090b83..855156acdb96 100644 --- a/packages/wasm/rollup.config.js +++ b/packages/wasm/rollup.config.js @@ -3,6 +3,7 @@ import { makeBaseBundleConfig, terserPlugin } from '../../rollup.config'; const baseBundleConfig = makeBaseBundleConfig({ input: 'src/index.ts', isAddOn: true, + jsVersion: 'es5', outputFileBase: 'build/wasm', }); diff --git a/rollup.config.js b/rollup.config.js index 3c684bf391e6..6412f0388a37 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -68,7 +68,7 @@ export const markAsBrowserBuild = replace({ }, }); -export const typescriptPluginES5 = typescript({ +const baseTSPluginOptions = { tsconfig: 'tsconfig.esm.json', tsconfigOverride: { compilerOptions: { @@ -79,7 +79,27 @@ export const typescriptPluginES5 = typescript({ }, }, include: ['*.ts+(|x)', '**/*.ts+(|x)', '../**/*.ts+(|x)'], -}); +}; + +export const typescriptPluginES5 = typescript( + deepMerge(baseTSPluginOptions, { + tsconfigOverride: { + compilerOptions: { + target: 'es5', + }, + }, + }), +); + +export const typescriptPluginES6 = typescript( + deepMerge(baseTSPluginOptions, { + tsconfigOverride: { + compilerOptions: { + target: 'es6', + }, + }, + }), +); export const nodeResolvePlugin = resolve(); @@ -124,7 +144,7 @@ export const addOnBundleConfig = { }; export function makeBaseBundleConfig(options) { - const { input, isAddOn, outputFileBase } = options; + const { input, isAddOn, jsVersion, outputFileBase } = options; const standAloneBundleConfig = { output: { @@ -174,7 +194,7 @@ export function makeBaseBundleConfig(options) { strict: false, esModule: false, }, - plugins: [typescriptPluginES5, markAsBrowserBuild, nodeResolvePlugin], + plugins: [jsVersion === 'es5' ? typescriptPluginES5 : typescriptPluginES6, markAsBrowserBuild, nodeResolvePlugin], treeshake: 'smallest', };