import { defineConfig } from "tsup"; /** * @managemate/react — build config * * - Output dual (ESM + CJS) avec types .d.ts * - Tree-shaking : sideEffects: false dans package.json garantit que les * imports inutilisés sont droppés par les bundlers consommateurs. * - Ne bundle PAS les peerDependencies (react, react-dom, @managemate/css). */ export default defineConfig({ entry: ["src/index.tsx"], format: ["esm", "cjs"], dts: true, sourcemap: true, clean: true, splitting: true, // ESM code-splitting pour permettre le tree-shaking par composant treeshake: true, minify: false, target: "es2022", external: ["react", "react-dom", "react/jsx-runtime", "@managemate/css", "@managemate/icons"], // Garantit que les imports d'effet (CSS) ne sont pas tree-shakés par erreur, // même si on en avait. Cf. https://webpack.js.org/guides/tree-shaking/ });