Open
Description
Summary
ES modules are widely supported: MDN, caniuse and offer some advantages, like the ability of bundlers to do tree-shaking.
Basic example
In the most basic setup, only a single line of code would have to change in rollup.config.js:
output: [
{
file: pkg.main,
- format: 'cjs',
+ format: 'es',
sourcemap: true,
},
]
Motivation
In my code currently I only use the recurrent.LSTM()
class, and with the change above I observed a 56% bundle size reduction after tree-shaking. That value will obviously vary from user to user, but there will probably be a reduction in bundle size. If legacy support is important then it's possible to ship both, cjs
and esm
code, but I personally don't think that this is necessary.