diff --git a/package-lock.json b/package-lock.json index 9fe8a8c9..0fa07c59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "devDependencies": { "@eslint/js": "^9.24.0", "@playwright/test": "1.43.1", + "@rollup/plugin-replace": "^6.0.2", "@types/async": "^3.2.24", "@types/node": "*", "@types/selenium-webdriver": "^4.1.28", @@ -1477,6 +1478,67 @@ "node": ">=16" } }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.38.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.38.0.tgz", diff --git a/package.json b/package.json index 921965c7..9b984864 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "devDependencies": { "@eslint/js": "^9.24.0", "@playwright/test": "1.43.1", + "@rollup/plugin-replace": "^6.0.2", "@types/async": "^3.2.24", "@types/node": "*", "@types/selenium-webdriver": "^4.1.28", diff --git a/vite.config.ts b/vite.config.ts index 13f8d392..0fa56b2e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,6 @@ /// +import replace from '@rollup/plugin-replace'; import { resolve } from 'path'; import { bundleStats } from 'rollup-plugin-bundle-stats'; import { defineConfig } from 'vite'; @@ -46,14 +47,18 @@ export default defineConfig({ target: 'es6', sourcemap: true, rollupOptions: { - external: [/source-map-js/], - // This is not needed, but silences a Rollup warning - output: { - globals: { - 'source-map-js/lib/source-map-generator.js': - 'sourceMapGenerator_js', - }, - }, + plugins: [ + // Remove unused source-map-js module to minimize build size + // @ts-expect-error https://github.com/rollup/plugins/issues/1541 + replace({ + values: { + "import { SourceMapGenerator } from 'source-map-js/lib/source-map-generator.js';": + '', + }, + delimiters: ['', ''], + preventAssignment: true, + }), + ], }, }, plugins: [bundleStats({ compare: false, silent: true })],