From 2a6e185be959d8721312fd654777d986ecca9fb9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 08:13:41 +0000 Subject: [PATCH 1/6] Update vite --- modules/banner/element-web/package.json | 4 ++-- modules/opendesk/element-web/package.json | 2 +- modules/restricted-guests/element-web/package.json | 2 +- modules/widget-lifecycle/element-web/package.json | 4 ++-- modules/widget-toggles/element-web/package.json | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/banner/element-web/package.json b/modules/banner/element-web/package.json index 6de5f92bce..c9a36d3b84 100644 --- a/modules/banner/element-web/package.json +++ b/modules/banner/element-web/package.json @@ -23,9 +23,9 @@ "react": "19.2.6", "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", - "vite": "^7.3.2", + "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", - "vite-plugin-svgr": "^4.3.0" + "vite-plugin-svgr": "^5.0.0" }, "dependencies": { "@radix-ui/react-dialog": "^1.1.6", diff --git a/modules/opendesk/element-web/package.json b/modules/opendesk/element-web/package.json index a4bc223a15..c69700b632 100644 --- a/modules/opendesk/element-web/package.json +++ b/modules/opendesk/element-web/package.json @@ -26,7 +26,7 @@ "react-dom": "19.2.6", "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", - "vite": "^7.3.2", + "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" } } diff --git a/modules/restricted-guests/element-web/package.json b/modules/restricted-guests/element-web/package.json index db6e4e99f2..70d9b16709 100644 --- a/modules/restricted-guests/element-web/package.json +++ b/modules/restricted-guests/element-web/package.json @@ -20,7 +20,7 @@ "react": "19.2.6", "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", - "vite": "^7.3.2", + "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" }, "dependencies": { diff --git a/modules/widget-lifecycle/element-web/package.json b/modules/widget-lifecycle/element-web/package.json index d1531de023..44f50e50b3 100644 --- a/modules/widget-lifecycle/element-web/package.json +++ b/modules/widget-lifecycle/element-web/package.json @@ -16,9 +16,9 @@ "@types/node": "^22.10.7", "@vitest/coverage-v8": "^4.0.0", "typescript": "^6.0.0", - "vite": "^7.3.2", + "vite": "^8.0.0", "vitest": "^4.0.0", - "vitest-sonar-reporter": "^2.0.0" + "vitest-sonar-reporter": "^3.0.0" }, "dependencies": { "zod": "^4.0.0" diff --git a/modules/widget-toggles/element-web/package.json b/modules/widget-toggles/element-web/package.json index bf5b8de940..1fb7b28dd3 100644 --- a/modules/widget-toggles/element-web/package.json +++ b/modules/widget-toggles/element-web/package.json @@ -25,11 +25,11 @@ "react": "^19", "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", - "vite": "^7.1.11", + "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", - "vite-plugin-svgr": "^4.3.0", + "vite-plugin-svgr": "^5.0.0", "vitest": "^4.0.0", - "vitest-sonar-reporter": "^2.0.0" + "vitest-sonar-reporter": "^3.0.0" }, "dependencies": { "@vector-im/compound-design-tokens": "^10.0.0", From 2321dc8f63859701da453309deede53b488367ed Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 4 Jun 2026 11:11:29 +0100 Subject: [PATCH 2/6] Use esmExternalRequirePlugin --- modules/banner/element-web/vite.config.ts | 10 +++++++--- modules/opendesk/element-web/vite.config.ts | 10 +++++++--- modules/restricted-guests/element-web/vite.config.ts | 10 +++++++--- modules/widget-toggles/element-web/vite.config.ts | 10 +++++++--- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index d7ae139b11..f91b5b95e4 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; -import { defineConfig } from "vite"; +import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import externalGlobals from "rollup-plugin-external-globals"; @@ -27,8 +27,12 @@ export default defineConfig({ outDir: "lib", target: "esnext", sourcemap: true, - rollupOptions: { - external: ["react"], + rolldownOptions: { + plugins: [ + esmExternalRequirePlugin({ + external: ["react"], + }), + ], }, }, plugins: [ diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts index 8f1d83e06f..b18db2791f 100644 --- a/modules/opendesk/element-web/vite.config.ts +++ b/modules/opendesk/element-web/vite.config.ts @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; -import { defineConfig } from "vite"; +import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import externalGlobals from "rollup-plugin-external-globals"; @@ -25,8 +25,12 @@ export default defineConfig({ outDir: "lib", target: "esnext", sourcemap: true, - rollupOptions: { - external: ["react"], + rolldownOptions: { + plugins: [ + esmExternalRequirePlugin({ + external: ["react"], + }), + ], }, minify: false, }, diff --git a/modules/restricted-guests/element-web/vite.config.ts b/modules/restricted-guests/element-web/vite.config.ts index 24798ac03f..7c90bde5f7 100644 --- a/modules/restricted-guests/element-web/vite.config.ts +++ b/modules/restricted-guests/element-web/vite.config.ts @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; -import { defineConfig } from "vite"; +import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import externalGlobals from "rollup-plugin-external-globals"; @@ -26,8 +26,12 @@ export default defineConfig({ outDir: "lib", target: "esnext", sourcemap: true, - rollupOptions: { - external: ["react"], + rolldownOptions: { + plugins: [ + esmExternalRequirePlugin({ + external: ["react"], + }), + ], }, }, plugins: [ diff --git a/modules/widget-toggles/element-web/vite.config.ts b/modules/widget-toggles/element-web/vite.config.ts index b65e3ec8ea..a0c42c6ee0 100644 --- a/modules/widget-toggles/element-web/vite.config.ts +++ b/modules/widget-toggles/element-web/vite.config.ts @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; -import { defineConfig } from "vite"; +import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import externalGlobals from "rollup-plugin-external-globals"; @@ -27,8 +27,12 @@ export default defineConfig({ outDir: "lib", target: "esnext", sourcemap: true, - rollupOptions: { - external: ["react"], + rolldownOptions: { + plugins: [ + esmExternalRequirePlugin({ + external: ["react"], + }), + ], }, }, plugins: [ From 82b5397c7daa7a261c42475657874bec9bdde546 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 4 Jun 2026 11:36:15 +0100 Subject: [PATCH 3/6] Use rolldownOptions.output.globals --- modules/banner/element-web/package.json | 1 - modules/banner/element-web/vite.config.ts | 11 ++++++----- modules/opendesk/element-web/package.json | 1 - modules/opendesk/element-web/vite.config.ts | 11 ++++++----- modules/restricted-guests/element-web/package.json | 1 - modules/restricted-guests/element-web/vite.config.ts | 11 ++++++----- modules/widget-toggles/element-web/package.json | 1 - modules/widget-toggles/element-web/vite.config.ts | 11 ++++++----- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/banner/element-web/package.json b/modules/banner/element-web/package.json index c9a36d3b84..a2af841d74 100644 --- a/modules/banner/element-web/package.json +++ b/modules/banner/element-web/package.json @@ -21,7 +21,6 @@ "matrix-web-i18n": "^3.6.0", "matrix-widget-api": "^1.17.0", "react": "19.2.6", - "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index f91b5b95e4..6aa89587be 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -10,7 +10,6 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; -import externalGlobals from "rollup-plugin-external-globals"; import svgr from "vite-plugin-svgr"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; @@ -33,6 +32,12 @@ export default defineConfig({ external: ["react"], }), ], + output: { + globals: { + // Reuse React from the host app + react: "window.React", + }, + }, }, }, plugins: [ @@ -42,10 +47,6 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), - externalGlobals({ - // Reuse React from the host app - react: "window.React", - }), ], define: { // Use production mode for the build as it is tested against production builds of Element Web, diff --git a/modules/opendesk/element-web/package.json b/modules/opendesk/element-web/package.json index c69700b632..70814d9062 100644 --- a/modules/opendesk/element-web/package.json +++ b/modules/opendesk/element-web/package.json @@ -24,7 +24,6 @@ "@vitejs/plugin-react": "^5.0.0", "react": "19.2.6", "react-dom": "19.2.6", - "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts index b18db2791f..4a9353fb03 100644 --- a/modules/opendesk/element-web/vite.config.ts +++ b/modules/opendesk/element-web/vite.config.ts @@ -10,7 +10,6 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; -import externalGlobals from "rollup-plugin-external-globals"; const __dirname = dirname(fileURLToPath(import.meta.url)); @@ -31,6 +30,12 @@ export default defineConfig({ external: ["react"], }), ], + output: { + globals: { + // Reuse React from the host app + react: "window.React", + }, + }, }, minify: false, }, @@ -39,10 +44,6 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), - externalGlobals({ - // Reuse React from the host app - react: "window.React", - }), ], define: { // Use production mode for the build as it is tested against production builds of Element Web, diff --git a/modules/restricted-guests/element-web/package.json b/modules/restricted-guests/element-web/package.json index 70d9b16709..b014f82147 100644 --- a/modules/restricted-guests/element-web/package.json +++ b/modules/restricted-guests/element-web/package.json @@ -18,7 +18,6 @@ "@types/react": "^19", "@vitejs/plugin-react": "^5.0.0", "react": "19.2.6", - "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" diff --git a/modules/restricted-guests/element-web/vite.config.ts b/modules/restricted-guests/element-web/vite.config.ts index 7c90bde5f7..4517c4584c 100644 --- a/modules/restricted-guests/element-web/vite.config.ts +++ b/modules/restricted-guests/element-web/vite.config.ts @@ -10,7 +10,6 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; -import externalGlobals from "rollup-plugin-external-globals"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; const __dirname = dirname(fileURLToPath(import.meta.url)); @@ -32,6 +31,12 @@ export default defineConfig({ external: ["react"], }), ], + output: { + globals: { + // Reuse React from the host app + react: "window.React", + }, + }, }, }, plugins: [ @@ -40,10 +45,6 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), - externalGlobals({ - // Reuse React from the host app - react: "window.React", - }), ], define: { // Use production mode for the build as it is tested against production builds of Element Web, diff --git a/modules/widget-toggles/element-web/package.json b/modules/widget-toggles/element-web/package.json index 1fb7b28dd3..38e6b87177 100644 --- a/modules/widget-toggles/element-web/package.json +++ b/modules/widget-toggles/element-web/package.json @@ -23,7 +23,6 @@ "@vitest/browser-playwright": "^4.0.0", "@vitest/coverage-v8": "^4.0.0", "react": "^19", - "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", diff --git a/modules/widget-toggles/element-web/vite.config.ts b/modules/widget-toggles/element-web/vite.config.ts index a0c42c6ee0..f50e35e54d 100644 --- a/modules/widget-toggles/element-web/vite.config.ts +++ b/modules/widget-toggles/element-web/vite.config.ts @@ -10,7 +10,6 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; -import externalGlobals from "rollup-plugin-external-globals"; import svgr from "vite-plugin-svgr"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; @@ -33,6 +32,12 @@ export default defineConfig({ external: ["react"], }), ], + output: { + globals: { + // Reuse React from the host app + react: "window.React", + }, + }, }, }, plugins: [ @@ -42,10 +47,6 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), - externalGlobals({ - // Reuse React from the host app - react: "window.React", - }), ], define: { // Use production mode for the build as it is tested against production builds of Element Web, From 9d9991d838e158f05223b228b20c3fbe20358ef8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 4 Jun 2026 12:18:22 +0100 Subject: [PATCH 4/6] Use rolldownOptions.transform.define --- modules/banner/element-web/vite.config.ts | 12 +++++++----- modules/opendesk/element-web/vite.config.ts | 12 +++++++----- modules/restricted-guests/element-web/vite.config.ts | 12 +++++++----- modules/widget-toggles/element-web/vite.config.ts | 12 +++++++----- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index 6aa89587be..5556992672 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -38,6 +38,13 @@ export default defineConfig({ react: "window.React", }, }, + transform: { + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": JSON.stringify("production"), + }, + }, }, }, plugins: [ @@ -48,9 +55,4 @@ export default defineConfig({ include: ["events"], }), ], - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - process: { env: { NODE_ENV: "production" } }, - }, }); diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts index 4a9353fb03..d55959680e 100644 --- a/modules/opendesk/element-web/vite.config.ts +++ b/modules/opendesk/element-web/vite.config.ts @@ -36,6 +36,13 @@ export default defineConfig({ react: "window.React", }, }, + transform: { + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": JSON.stringify("production"), + }, + }, }, minify: false, }, @@ -45,9 +52,4 @@ export default defineConfig({ include: ["events"], }), ], - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - process: { env: { NODE_ENV: "production" } }, - }, }); diff --git a/modules/restricted-guests/element-web/vite.config.ts b/modules/restricted-guests/element-web/vite.config.ts index 4517c4584c..95a5175ae3 100644 --- a/modules/restricted-guests/element-web/vite.config.ts +++ b/modules/restricted-guests/element-web/vite.config.ts @@ -37,6 +37,13 @@ export default defineConfig({ react: "window.React", }, }, + transform: { + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": JSON.stringify("production"), + }, + }, }, }, plugins: [ @@ -46,9 +53,4 @@ export default defineConfig({ include: ["events"], }), ], - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - process: { env: { NODE_ENV: "production" } }, - }, }); diff --git a/modules/widget-toggles/element-web/vite.config.ts b/modules/widget-toggles/element-web/vite.config.ts index f50e35e54d..0e28cdffd8 100644 --- a/modules/widget-toggles/element-web/vite.config.ts +++ b/modules/widget-toggles/element-web/vite.config.ts @@ -38,6 +38,13 @@ export default defineConfig({ react: "window.React", }, }, + transform: { + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": JSON.stringify("production"), + }, + }, }, }, plugins: [ @@ -48,9 +55,4 @@ export default defineConfig({ include: ["events"], }), ], - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - process: { env: { NODE_ENV: "production" } }, - }, }); From f5d93099e370e08ef1267008bdb2301b96bc1f18 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 4 Jun 2026 12:47:25 +0100 Subject: [PATCH 5/6] Re-add externalGlobals --- modules/banner/element-web/package.json | 1 + modules/banner/element-web/vite.config.ts | 5 +++++ modules/opendesk/element-web/package.json | 1 + modules/opendesk/element-web/vite.config.ts | 5 +++++ modules/restricted-guests/element-web/package.json | 1 + modules/restricted-guests/element-web/vite.config.ts | 5 +++++ modules/widget-toggles/element-web/package.json | 1 + modules/widget-toggles/element-web/vite.config.ts | 5 +++++ 8 files changed, 24 insertions(+) diff --git a/modules/banner/element-web/package.json b/modules/banner/element-web/package.json index a2af841d74..c9a36d3b84 100644 --- a/modules/banner/element-web/package.json +++ b/modules/banner/element-web/package.json @@ -21,6 +21,7 @@ "matrix-web-i18n": "^3.6.0", "matrix-widget-api": "^1.17.0", "react": "19.2.6", + "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index 5556992672..ab331f6419 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -10,6 +10,7 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; +import externalGlobals from "rollup-plugin-external-globals"; import svgr from "vite-plugin-svgr"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; @@ -54,5 +55,9 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), + externalGlobals({ + // Reuse React from the host app + react: "window.React", + }), ], }); diff --git a/modules/opendesk/element-web/package.json b/modules/opendesk/element-web/package.json index 70814d9062..c69700b632 100644 --- a/modules/opendesk/element-web/package.json +++ b/modules/opendesk/element-web/package.json @@ -24,6 +24,7 @@ "@vitejs/plugin-react": "^5.0.0", "react": "19.2.6", "react-dom": "19.2.6", + "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts index d55959680e..23a0515ef8 100644 --- a/modules/opendesk/element-web/vite.config.ts +++ b/modules/opendesk/element-web/vite.config.ts @@ -10,6 +10,7 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; +import externalGlobals from "rollup-plugin-external-globals"; const __dirname = dirname(fileURLToPath(import.meta.url)); @@ -51,5 +52,9 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), + externalGlobals({ + // Reuse React from the host app + react: "window.React", + }), ], }); diff --git a/modules/restricted-guests/element-web/package.json b/modules/restricted-guests/element-web/package.json index b014f82147..70d9b16709 100644 --- a/modules/restricted-guests/element-web/package.json +++ b/modules/restricted-guests/element-web/package.json @@ -18,6 +18,7 @@ "@types/react": "^19", "@vitejs/plugin-react": "^5.0.0", "react": "19.2.6", + "rollup-plugin-external-globals": "^0.13.0", "typescript": "^6.0.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0" diff --git a/modules/restricted-guests/element-web/vite.config.ts b/modules/restricted-guests/element-web/vite.config.ts index 95a5175ae3..048b48335f 100644 --- a/modules/restricted-guests/element-web/vite.config.ts +++ b/modules/restricted-guests/element-web/vite.config.ts @@ -10,6 +10,7 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; +import externalGlobals from "rollup-plugin-external-globals"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; const __dirname = dirname(fileURLToPath(import.meta.url)); @@ -52,5 +53,9 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), + externalGlobals({ + // Reuse React from the host app + react: "window.React", + }), ], }); diff --git a/modules/widget-toggles/element-web/package.json b/modules/widget-toggles/element-web/package.json index 38e6b87177..9e4f5d8a1d 100644 --- a/modules/widget-toggles/element-web/package.json +++ b/modules/widget-toggles/element-web/package.json @@ -24,6 +24,7 @@ "@vitest/coverage-v8": "^4.0.0", "react": "^19", "typescript": "^6.0.0", + "rollup-plugin-external-globals": "^0.13.0", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.28.0", "vite-plugin-svgr": "^5.0.0", diff --git a/modules/widget-toggles/element-web/vite.config.ts b/modules/widget-toggles/element-web/vite.config.ts index 0e28cdffd8..51770551f9 100644 --- a/modules/widget-toggles/element-web/vite.config.ts +++ b/modules/widget-toggles/element-web/vite.config.ts @@ -10,6 +10,7 @@ import { fileURLToPath } from "node:url"; import { defineConfig, esmExternalRequirePlugin } from "vite"; import react from "@vitejs/plugin-react"; import { nodePolyfills } from "vite-plugin-node-polyfills"; +import externalGlobals from "rollup-plugin-external-globals"; import svgr from "vite-plugin-svgr"; import { importCSSSheet } from "@arcmantle/vite-plugin-import-css-sheet"; @@ -54,5 +55,9 @@ export default defineConfig({ nodePolyfills({ include: ["events"], }), + externalGlobals({ + // Reuse React from the host app + react: "window.React", + }), ], }); From cfab5cc6595a55ff071e4163f6ab32a40eeb4e09 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 4 Jun 2026 13:42:01 +0100 Subject: [PATCH 6/6] Iterate NODE_ENV --- modules/banner/element-web/vite.config.ts | 13 ++++++------- modules/opendesk/element-web/vite.config.ts | 13 ++++++------- .../restricted-guests/element-web/vite.config.ts | 13 ++++++------- modules/widget-toggles/element-web/vite.config.ts | 13 ++++++------- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index ab331f6419..e2ee02eaa2 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -39,13 +39,6 @@ export default defineConfig({ react: "window.React", }, }, - transform: { - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - "process.env.NODE_ENV": JSON.stringify("production"), - }, - }, }, }, plugins: [ @@ -60,4 +53,10 @@ export default defineConfig({ react: "window.React", }), ], + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": "'production'", + "process": { env: { NODE_ENV: "production" } }, + }, }); diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts index 23a0515ef8..17dc4d055e 100644 --- a/modules/opendesk/element-web/vite.config.ts +++ b/modules/opendesk/element-web/vite.config.ts @@ -37,13 +37,6 @@ export default defineConfig({ react: "window.React", }, }, - transform: { - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - "process.env.NODE_ENV": JSON.stringify("production"), - }, - }, }, minify: false, }, @@ -57,4 +50,10 @@ export default defineConfig({ react: "window.React", }), ], + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": "'production'", + "process": { env: { NODE_ENV: "production" } }, + }, }); diff --git a/modules/restricted-guests/element-web/vite.config.ts b/modules/restricted-guests/element-web/vite.config.ts index 048b48335f..9dfdb5dbed 100644 --- a/modules/restricted-guests/element-web/vite.config.ts +++ b/modules/restricted-guests/element-web/vite.config.ts @@ -38,13 +38,6 @@ export default defineConfig({ react: "window.React", }, }, - transform: { - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - "process.env.NODE_ENV": JSON.stringify("production"), - }, - }, }, }, plugins: [ @@ -58,4 +51,10 @@ export default defineConfig({ react: "window.React", }), ], + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": "'production'", + "process": { env: { NODE_ENV: "production" } }, + }, }); diff --git a/modules/widget-toggles/element-web/vite.config.ts b/modules/widget-toggles/element-web/vite.config.ts index 51770551f9..dc8cc37107 100644 --- a/modules/widget-toggles/element-web/vite.config.ts +++ b/modules/widget-toggles/element-web/vite.config.ts @@ -39,13 +39,6 @@ export default defineConfig({ react: "window.React", }, }, - transform: { - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - "process.env.NODE_ENV": JSON.stringify("production"), - }, - }, }, }, plugins: [ @@ -60,4 +53,10 @@ export default defineConfig({ react: "window.React", }), ], + define: { + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + "process.env.NODE_ENV": "'production'", + "process": { env: { NODE_ENV: "production" } }, + }, });