ESM
- Встряхивание деревьев
- Более понятно в коде.
- Позволяет выполнять отложенную загрузку компонента
- Дает возможность легче импортировать определенную часть кода.
cjs
- Cross build
- Поддерживается в других средах
Если для вас не проблема, используйте оба варианта. Один для каждой среды. CJS будет работать в большинстве сред.
Если ваша цель только реагирует или другие интерфейсы es6 дает вам все преимущества, перечисленные выше. Но если вы хотите, чтобы ваш компонент можно было использовать в javascript веб-пакетах, таких как устаревшие приложения, вы должны использовать cjs, также для серверной части.