From 6cccfef7621fdc58e576c6ecf42b8d42219d1b52 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Wed, 18 May 2022 14:03:52 -0700 Subject: [PATCH] allow for multiple bundle entrypoints --- packages/browser/rollup.bundle.config.js | 4 ++-- packages/integrations/rollup.bundle.config.js | 4 ++-- packages/tracing/rollup.bundle.config.js | 4 ++-- packages/vue/rollup.bundle.config.js | 4 ++-- packages/wasm/rollup.bundle.config.js | 4 ++-- rollup/bundleHelpers.js | 13 +++++++------ 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/browser/rollup.bundle.config.js b/packages/browser/rollup.bundle.config.js index a17ef4f9d26d..23f9bb474c94 100644 --- a/packages/browser/rollup.bundle.config.js +++ b/packages/browser/rollup.bundle.config.js @@ -5,10 +5,10 @@ const builds = []; ['es5', 'es6'].forEach(jsVersion => { const baseBundleConfig = makeBaseBundleConfig({ bundleType: 'standalone', - input: 'src/index.ts', + entrypoints: ['src/index.ts'], jsVersion, licenseTitle: '@sentry/browser', - outputFileBase: `bundles/bundle${jsVersion === 'es5' ? '.es5' : ''}`, + outputFileBase: () => `bundles/bundle${jsVersion === 'es5' ? '.es5' : ''}`, }); builds.push(...makeBundleConfigVariants(baseBundleConfig)); diff --git a/packages/integrations/rollup.bundle.config.js b/packages/integrations/rollup.bundle.config.js index 322f5d992267..8f6e21de1937 100644 --- a/packages/integrations/rollup.bundle.config.js +++ b/packages/integrations/rollup.bundle.config.js @@ -9,10 +9,10 @@ const jsVersion = process.env.JS_VERSION; const baseBundleConfig = makeBaseBundleConfig({ bundleType: 'addon', - input: `src/${file}`, + entrypoints: [`src/${file}`], jsVersion, licenseTitle: '@sentry/integrations', - outputFileBase: `bundles/${file.replace('.ts', '')}${jsVersion === 'ES5' ? '.es5' : ''}`, + outputFileBase: ({ name: entrypoint }) => `bundles/${entrypoint}${jsVersion === 'ES5' ? '.es5' : ''}`, }); // TODO We only need `commonjs` for localforage (used in the offline plugin). Once that's fixed, this can come out. diff --git a/packages/tracing/rollup.bundle.config.js b/packages/tracing/rollup.bundle.config.js index 0c3f4bdacf89..0d5f4fcc8867 100644 --- a/packages/tracing/rollup.bundle.config.js +++ b/packages/tracing/rollup.bundle.config.js @@ -5,10 +5,10 @@ const builds = []; ['es5', 'es6'].forEach(jsVersion => { const baseBundleConfig = makeBaseBundleConfig({ bundleType: 'standalone', - input: 'src/index.bundle.ts', + entrypoints: ['src/index.bundle.ts'], jsVersion, licenseTitle: '@sentry/tracing & @sentry/browser', - outputFileBase: `bundles/bundle.tracing${jsVersion === 'es5' ? '.es5' : ''}`, + outputFileBase: () => `bundles/bundle.tracing${jsVersion === 'es5' ? '.es5' : ''}`, }); builds.push(...makeBundleConfigVariants(baseBundleConfig)); diff --git a/packages/vue/rollup.bundle.config.js b/packages/vue/rollup.bundle.config.js index 56fde34726cb..4df9b0d5b614 100644 --- a/packages/vue/rollup.bundle.config.js +++ b/packages/vue/rollup.bundle.config.js @@ -2,10 +2,10 @@ import { makeBaseBundleConfig, makeBundleConfigVariants } from '../../rollup/ind const baseBundleConfig = makeBaseBundleConfig({ bundleType: 'standalone', - input: 'src/index.bundle.ts', + entrypoints: ['src/index.bundle.ts'], jsVersion: 'es6', licenseTitle: '@sentry/vue', - outputFileBase: 'bundle.vue', + outputFileBase: () => 'bundle.vue', }); export default makeBundleConfigVariants(baseBundleConfig); diff --git a/packages/wasm/rollup.bundle.config.js b/packages/wasm/rollup.bundle.config.js index 4ddef06d4e25..2c97176f0dee 100644 --- a/packages/wasm/rollup.bundle.config.js +++ b/packages/wasm/rollup.bundle.config.js @@ -2,10 +2,10 @@ import { makeBaseBundleConfig, makeBundleConfigVariants } from '../../rollup/ind const baseBundleConfig = makeBaseBundleConfig({ bundleType: 'addon', - input: 'src/index.ts', + entrypoints: ['src/index.ts'], jsVersion: 'es6', licenseTitle: '@sentry/wasm', - outputFileBase: 'bundles/wasm', + outputFileBase: () => 'bundles/wasm', }); export default makeBundleConfigVariants(baseBundleConfig); diff --git a/rollup/bundleHelpers.js b/rollup/bundleHelpers.js index be67ffbbdfb1..b3acb7b36e1f 100644 --- a/rollup/bundleHelpers.js +++ b/rollup/bundleHelpers.js @@ -21,7 +21,7 @@ import { import { mergePlugins } from './utils'; export function makeBaseBundleConfig(options) { - const { bundleType, input, jsVersion, licenseTitle, outputFileBase } = options; + const { bundleType, entrypoints, jsVersion, licenseTitle, outputFileBase } = options; const nodeResolvePlugin = makeNodeResolvePlugin(); const sucrasePlugin = makeSucrasePlugin(); @@ -91,10 +91,11 @@ export function makeBaseBundleConfig(options) { // used by all bundles const sharedBundleConfig = { - input, + input: entrypoints, output: { // a file extension will be added to this base value when we specify either a minified or non-minified build - file: `build/${outputFileBase}`, + entryFileNames: outputFileBase, + dir: 'build', sourcemap: true, strict: false, esModule: false, @@ -136,7 +137,7 @@ export function makeBundleConfigVariants(baseConfig) { const variantSpecificConfigs = [ { output: { - file: `${baseConfig.output.file}.js`, + entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.js`, }, plugins: [includeDebuggingPlugin], }, @@ -150,13 +151,13 @@ export function makeBundleConfigVariants(baseConfig) { // }, { output: { - file: `${baseConfig.output.file}.min.js`, + entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.min.js`, }, plugins: [stripDebuggingPlugin, terserPlugin], }, { output: { - file: `${baseConfig.output.file}.debug.min.js`, + entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.debug.min.js`, }, plugins: [terserPlugin], },