diff --git a/CLAUDE.md b/CLAUDE.md index ab9eac41e..316ec32b0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -422,7 +422,8 @@ See `examples/vite/src/index.scss` for the reference layer setup. - `stream-chat-react/emojis` — Emoji picker plugin (`src/plugins/Emojis/`) - `stream-chat-react/mp3-encoder` — MP3 encoding for voice messages (`src/plugins/encoders/mp3.ts`) -Vite config: no minification, sourcemaps enabled, all deps externalized. Target: ES2020. +Vite config: no minification, sourcemaps enabled, all deps externalized. Target: ES2022 +(inherited from `tsconfig.lib.json`'s `compilerOptions.target`, so the two never drift). ### i18n System diff --git a/package.json b/package.json index 51f14b5c3..5a401a92f 100644 --- a/package.json +++ b/package.json @@ -259,11 +259,6 @@ "built": true } }, - "browserslist": [ - ">0.2%", - "not ie <= 11", - "not op_mini all" - ], "packageManager": "yarn@4.15.0", "workspaces": [ "examples/*" diff --git a/vite.config.ts b/vite.config.ts index cec5c7f71..70d16635d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -26,6 +26,7 @@ export default defineConfig({ 'slot-layout': resolve(__dirname, './src/plugins/SlotLayout/index.tsx'), }, }, + // `yarn build` already wipes dist up front via `yarn clean` emptyOutDir: false, outDir: 'dist', minify: false, @@ -45,6 +46,11 @@ export default defineConfig({ chunkFileNames: `${dir}/[name].[hash].${extension}`, entryFileNames: `${dir}/[name].${extension}`, hashCharacters: 'hex', + // Emit the ESM build as one file per source module. Consumer bundlers + // drop whole modules (guided by our package.json `sideEffects`) before + // they attempt statement-level elimination. The CJS build stays chunked, + // as CJS is not tree-shaken by consumers either way. + preserveModules: format === 'es', }; }), },