@@ -10,14 +10,23 @@ import { sentryWebpackPlugin } from "@sentry/webpack-plugin";
1010import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin" ;
1111import { sentryRollupPlugin } from "@sentry/rollup-plugin" ;
1212
13- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
14- const nodejsMajorversion = process . version . split ( "." ) [ 0 ] ! . slice ( 1 ) ;
13+ const [ NODE_MAJOR_VERSION ] = process . version . split ( "." ) . map ( Number ) as [ number ] ;
14+
15+ type Bundlers =
16+ | "webpack4"
17+ | "webpack5"
18+ | "esbuild"
19+ | "rollup"
20+ | "rollup4"
21+ | "vite"
22+ | "vite6"
23+ | string ;
1524
1625export function createCjsBundles (
1726 entrypoints : { [ name : string ] : string } ,
1827 outFolder : string ,
1928 sentryUnpluginOptions : Options ,
20- plugins : string [ ] = [ ]
29+ plugins : Bundlers [ ] = [ ]
2130) : void {
2231 if ( plugins . length === 0 || plugins . includes ( "vite" ) ) {
2332 void vite . build ( {
@@ -36,6 +45,27 @@ export function createCjsBundles(
3645 plugins : [ sentryVitePlugin ( sentryUnpluginOptions ) ] ,
3746 } ) ;
3847 }
48+
49+ if ( ( NODE_MAJOR_VERSION >= 18 && plugins . length === 0 ) || plugins . includes ( "vite6" ) ) {
50+ // eslint-disable-next-line @typescript-eslint/no-var-requires
51+ const vite6 = require ( "vite6" ) as typeof vite ;
52+ void vite6 . build ( {
53+ clearScreen : false ,
54+ build : {
55+ sourcemap : true ,
56+ outDir : path . join ( outFolder , "vite" ) ,
57+ rollupOptions : {
58+ input : entrypoints ,
59+ output : {
60+ format : "cjs" ,
61+ entryFileNames : "[name].js" ,
62+ } ,
63+ } ,
64+ } ,
65+ plugins : [ sentryVitePlugin ( sentryUnpluginOptions ) ] ,
66+ } ) ;
67+ }
68+
3969 if ( plugins . length === 0 || plugins . includes ( "rollup" ) ) {
4070 void rollup
4171 . rollup ( {
@@ -52,6 +82,24 @@ export function createCjsBundles(
5282 ) ;
5383 }
5484
85+ if ( ( NODE_MAJOR_VERSION >= 18 && plugins . length === 0 ) || plugins . includes ( "rollup4" ) ) {
86+ // eslint-disable-next-line @typescript-eslint/no-var-requires
87+ const rollup4 = require ( "rollup4" ) as typeof rollup ;
88+ void rollup4
89+ . rollup ( {
90+ input : entrypoints ,
91+ plugins : [ sentryRollupPlugin ( sentryUnpluginOptions ) ] ,
92+ } )
93+ . then ( ( bundle ) =>
94+ bundle . write ( {
95+ sourcemap : true ,
96+ dir : path . join ( outFolder , "rollup" ) ,
97+ format : "cjs" ,
98+ exports : "named" ,
99+ } )
100+ ) ;
101+ }
102+
55103 if ( plugins . length === 0 || plugins . includes ( "esbuild" ) ) {
56104 void esbuild . build ( {
57105 sourcemap : true ,
@@ -65,7 +113,7 @@ export function createCjsBundles(
65113 }
66114
67115 // Webpack 4 doesn't work on Node.js versions >= 18
68- if ( parseInt ( nodejsMajorversion ) < 18 && ( plugins . length === 0 || plugins . includes ( "webpack4" ) ) ) {
116+ if ( NODE_MAJOR_VERSION < 18 && ( plugins . length === 0 || plugins . includes ( "webpack4" ) ) ) {
69117 webpack4 (
70118 {
71119 devtool : "source-map" ,
0 commit comments