intermediate
Rollup
Собирайте библиотеки и ESM-first пакеты с tree-shaking, external dependencies и предсказуемыми форматами output.
Rollup силён в сборке библиотек и ESM-first output. Статический анализ `import`/`export` даёт сильный tree-shaking при корректном `sideEffects: false`.
export default {
input: 'src/index.ts',
external: ['react', 'react-dom'],
output: [
{ file: 'dist/index.esm.js', format: 'esm' },
{ file: 'dist/index.cjs.js', format: 'cjs' },
],
};
Peer dependencies помечайте `external`, чтобы потребитель давал singleton вроде React. Dual ESM/CJS на npm для библиотек всё ещё частая практика.
На интервью: форматы output, externals, границы peer, плагины и production pipeline Vite на Rollup.
Типовые ошибки: peers внутри библиотеки; dynamic `import()` режет shake; только CJS в ESM-first мире.
Компромисс — предсказуемый output библиотеки против менее «app-ready» ergonomics, чем у Vite.
Чеклист:
- Осознанные external для peers.
- Форматы под потребителей.
- Проверка tree-shaking.
- Честный `sideEffects`.