Skip to content

Build as ES Module #946

Open
Open
@elvis-pereira

Description

@elvis-pereira

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions